Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Piotr DejaVu Szawdyński
Pomogli: Patzick, GoldWolf
Język C++

fseek

[funkcja] Ustawia lub przesuwa pozycję kursora odczytu/zapisu danych dla wskazanego strumienia.

Składnia

C/C++
#include <cstdio>

int fseek( FILE * stream, long offset, int origin );

Argumenty

ArgumentOpis
FILE *streamOkreśla strumień na którym ma zostać wykonana operacja.
long offsetWartość określająca o ile bajtów należy przesunąć kursor odczytu/zapisu danych. Pozycja względem której wykonywane będzie przesunięcie kursora jest określana za pomocą argumentu origin.
int originArgument może przyjmować jedną z poniższych wartości:
WartośćOpis
SEEK_SETPrzesunięcie kursora jest wyrażone względem początku pliku.
SEEK_CURPrzesunięcie kursora jest wyrażane względem aktualnej pozycji.
SEEK_ENDPrzesunięcie kursora jest wyrażone względem końca pliku.

Zwracana wartość

Zwraca wartość zero w przypadku sukcesu. W przeciwnym wypadku funkcja zwraca wartość różną od zera.

Opis szczegółowy

Funkcja ustawia lub przesuwa pozycję kursora odczytu/zapisu danych dla wskazanego strumienia.

Dla strumienia otwartego w trybie binarnym, nowa pozycja kursora jest ustalana poprzez dodanie wartości offset do pozycji, którą określa argument origin.

Dla strumienia otwartego w trybie tekstowym, wartość argumentu offset powinna wynosić zero lub wartość argumentu offset powinna być uprzednio pobrana za pomocą funkcji » standard Cftell, a następnie użyta w połączeniu z origin ustawionym na wartość SEEK_SET.

Flaga osiągnięcia końca pliku jest czyszczona, jeżeli wywołanie tej funkcji zakończyło się sukcesem. W przypadku sukcesu funkcja ta odrzuca również wszelkie zmiany spowodowane wywołaniem funkcji » standard Cungetc.

Przykład

C/C++
#include <cstdio>

int main()
{
    FILE * plik = fopen( "plik.out", "w+" );
    if( plik != NULL )
    {
        fprintf( plik, "To jest prosty przyklad.\n" );
       
        int czyBlad = fseek( plik, 8, SEEK_SET );
        if( czyBlad == 0 )
        {
            printf( "Kursor ustawiony na pozycji %d.\n", 8 );
            char lancuch[ 81 ];
            fgets( lancuch, 80, plik );
            printf( "%s", lancuch );
        } else
             perror( "Blad fseek\n" );
       
        fclose( plik );
    }
    return 0;
}
Standardowe wyjście programu:
Kursor ustawiony na pozycji 8.
prosty przyklad.

Zagadnienia powiązane

ftellZwraca aktualną pozycję kursora odczytu/zapisu danych dla wskazanego strumienia. (funkcja)
fsetposUstawia pozycję kursora odczytu/zapisu danych dla wskazanego strumienia. (funkcja)
rewindPrzesuwa kursor odczytu/zapisu danych na początek wskazanego strumienia. (funkcja)

Linki zewnętrzne