fseek(3) Library Functions Manual fseek(3) NAZWA fgetpos, fseek, fsetpos, ftell, rewind - zmiana pozycji w strumieniu BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include int fseek(FILE *stream, long offset, int whence); long ftell(FILE *stream); void rewind(FILE *stream); int fgetpos(FILE *restrict stream, fpos_t *restrict pos); int fsetpos(FILE *stream, const fpos_t *pos); OPIS Funkcja fseek() ustawia wskaznik pozycji pliku dla strumienia wskazywanego przez stream. Nowa pozycje, okreslona w bajtach, otrzymuje sie, dodajac offset bajtow do pozycji okreslonej przez whence. Gdy whence jest ustawione na SEEK_SET, SEEK_CUR lub SEEK_END, offset jest okreslany, odpowiednio, wzgledem poczatku pliku, wskaznika biezacej pozycji lub konca pliku. Pomyslne wywolanie funkcji fseek() powoduje wyczyszczenie sygnalizatora konca pliku dla strumienia i wycofuje wszelkie efekty funkcji ungetc(3) dla tego samego strumienia. Funkcja ftell() pobiera biezaca wartosc wskaznika pozycji pliku dla strumienia wskazywanego przez stream. Funkcja rewind() ustawia wskaznik pozycji pliku dla strumienia wskazywanego przez stream na poczatku pliku. Jest rownowazna: (void) fseek(stream, 0L, SEEK_SET) z ta roznica, ze jest rowniez czyszczony wskaznik bledu dla tego strumienia (zobacz clearerr(3)). Funkcje fgetpos() i fsetpos() stanowia alternatywne interfejsy rownowazne z ftell() i fseek() (z whence ustawionym na SEEK_SET), sluzace odpowiednio do zachowania biezacej wartosci offsetu pliku w obiekcie wskazywanym przez pos i do ustawienia tej wartosci na podstawie podanego obiektu. W niektorych systemach nieuniksowych obiekt fpos_t moze byc zlozonym obiektem i powyzsze funkcje moga dawac jedyna przenosna mozliwosc zmiany pozycji strumienia tekstowego. If the stream refers to a regular file and the resulting stream offset is beyond the size of the file, subsequent writes will extend the file with a hole, up to the offset, before committing any data. See lseek(2) for details on file seeking semantics. WARTOSC ZWRACANA Funkcja rewind() nie zwraca wartosci. Przy pomyslnym zakonczeniu, fgetpos(), fseek() i fsetpos() zwracaja 0, a ftell() zwraca biezacy offset. W przeciwnym przypadku zwracane jest -1 i ustawiane jest errno, wskazujace na rodzaj bledu. BLEDY EINVAL Argument whence funkcji fseek() nie jest jednym z SEEK_SET, SEEK_END lub SEEK_CUR. Albo: wynikowe przesuniecie pliku bedzie ujemne. ESPIPE Deskryptor pliku dla strumienia stream nie pozwala na przestawianie wskaznika pozycji (na przyklad odnosi sie do potoku, kolejki FIFO lub gniazda). Funkcje fgetpos(), fseek(), fsetpos() i ftell moga rowniez zawiesc, ustawiajac w errno dowolny z bledow okreslonych dla funkcji fflush(3), fstat(2), lseek(2) i malloc(3). ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +---------------------------+--------------------------+---------------+ |Interfejs | Atrybut | Wartosc | +---------------------------+--------------------------+---------------+ |fseek(), ftell(), | Bezpieczenstwo watkowe | MT-bezpieczne | |rewind(), fgetpos(), | | | |fsetpos() | | | +---------------------------+--------------------------+---------------+ STANDARDY C11, POSIX.1-2008. HISTORIA POSIX.1-2001, C89. ZOBACZ TAKZE lseek(2), fseeko(3) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Andrzej Krzysztofowicz , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.06 31 pazdziernika 2023 r. fseek(3)