fseek

FSEEK(3)                 Podręcznik programisty Linuksa                 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, const fpos_t *pos);

OPIS
       Funkcja fseek() ustawia wskaźnik pozycji pliku dla strumienia
       wskazywanego przez stream. Nową pozycję, określoną w bajtach, otrzymuje
       się, dodając offset bajtów do pozycji określonej przez whence. Gdy whence
       jest ustawione na SEEK_SET, SEEK_CUR lub SEEK_END, offset jest określany,
       odpowiednio, względem początku pliku, wskaźnika bieżącej pozycji lub
       końca pliku. 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 równoważne
       z ftell() i fseek() (z whence ustawionym na SEEK_SET), służące
       odpowiednio do zachowania bieżącej wartości offsetu 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ą dawać jedyną przenośną
       możliwość zmiany pozycji strumienia tekstowego.

WARTOŚĆ ZWRACANA
       Funkcja rewind() nie zwraca wartości. Przy pomyślnym zakończeniu,
       fgetpos(), fseek() i fsetpos() zwracają 0, a ftell() zwraca bieżący
       offset. W przeciwnym przypadku zwracane jest -1 i ustawiane jest errno,
       wskazujące na rodzaj błędu.

BŁĘDY
       EINVAL Argument whence funkcji fseek() nie jest jednym z SEEK_SET,
              SEEK_END lub SEEK_CUR. Albo: wynikowe przesunięcie pliku będzie
              ujemne.

       ESPIPE Deskryptor pliku dla strumienia stream nie pozwala na
              przestawianie wskaźnika pozycji (na przykład odnosi się do potoku,
              kolejki FIFO lub gniazda).

       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).

ATRYBUTY
       Informacje o pojęciach używanych w tym rozdziale można znaleźć w
       podręczniku attributes(7).

       ┌────────────────────────────┬────────────────────────┬─────────┐
       │Interfejs                   Atrybut                Wartość │
       ├────────────────────────────┼────────────────────────┼─────────┤
       │fseek(), ftell(), rewind(), │ Bezpieczeństwo wątkowe │ MT-Safe │
       │fgetpos(), fsetpos()        │                        │         │
       └────────────────────────────┴────────────────────────┴─────────┘

ZGODNE Z
       POSIX.1-2001, POSIX.1-2008, C89, C99.

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

O STRONIE
       Angielska wersja tej strony pochodzi z wydania 5.10 projektu Linux
       man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz
       najnowszą wersję oryginału można znaleźć pod adresem
       https://www.kernel.org/doc/man-pages/.


TŁUMACZENIE
       Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej
       Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda
       <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o
       warunkach licencji można uzyskać zapoznając się z GNU General Public
       License w wersji 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ lub
       nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

       Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres
       manpages-pl-list@lists.sourceforge.net ⟨⟩.



GNU                            30 kwietnia 2018 r.                      FSEEK(3)