FSEEK(3)

NAZWA
fgetpos, fseek, fsetpos, ftell, rewind - zmiana pozycji w strumieniu

SKŁADNIA
#include <stdio.h>

int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
void rewind(FILE *stream);
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, fpos_t *pos);

OPIS
Funkcja fseek ustawia wskaźnik pozycji pliku dla strumienia wskazywanego prez stream. Nową pozycję, określoną w bajtach, otrzymuje się dodając offset bajtów do pozycji określonej przez whence. Gdy whence jest ustawine na SEEK_SET, SEEK_CUR lub SEEK_END, ofset jest określany, odpowiednio, względem początku pliku, wskaźnika bieżącej pozycji, lub końca plku. Pomyślne wywołanie funkcji fseek powoduje wyczyszczenie sygnalizatora końca pliku dla strumienia i wycofuje wszelkie efekty funkcji ungetc(3) dla tego samego strumienia.

Funkcja ftell pobiera bieżącą wartość wskaźnika pozycji pliku dla strumienia wskazywanego przez stream.

Funkcja rewind ustawia wskaźnik pozycji pliku dla strumienia wskazywanego przez stream na początku pliku. Jest równoważna:

    (void)fseek(stream, 0L, SEEK_SET)

z tą różnicą, że jest również czyszczony wskaźnik błędu dla tego strumienia (zobacz clearerr(3)).

Funkcje fgetpos i fsetpos stanowią alternatywne interfejsy rownoważne ftell i fseek (z whence ustawionym na SEEK_SET), służące odpowiednio, do zachowania bieżącej wartości ofsetu pliku w obiekcie wskazywanym przez pos, i do ustawienia tej wartości na podstawie podanego obiektu. W niektórych systemach nieuniksowych obiekt fpos_t może być złożonym obiektem i powyższe funkcje mogą routines dawać jedyną przenośną możliwość zmiany pozycji strumienia tekstowego.

RETURN VALUE
Funkcja rewind nie zwraca wartości. Przy pomyślnym zakończeniu, fgetpos, fseek i fsetpos zwracają 0, a ftell zwraca bieżący ofset. W przeciwnym przyoadku zwracane jest -1, a rodzaj błędu jest określony poprzez ustawienie zmiennej globalnej errno.

BŁĘDY

EBADF
    Podanego strumienia stream nie można pozycjonować.

EINVAL
    Argument fseek whence nie jest jednym z SEEK_SET, SEEK_END lub SEEK_CUR.

Funkcje fgetpos, fseek, fsetpos, i ftell mogą również zawieść ustawiając w errno dowolny z błędów określonych dla funkcji fflush(3), fstat(2), lseek(2) i malloc(3).

ZGODNE Z
Funkcje fgetpos, fsetpos, fseek, ftell i rewind spełniają wymogi ANSI X3.159-1989 (``ANSI C'').

ZOBACZ TAKŻE
lseek(2), fseeko(3)