FSEEK(3) | Podręcznik programisty Linuksa | FSEEK(3) |
fgetpos, fseek, fsetpos, ftell, rewind - zmiana pozycji w strumieniu
#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);
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:
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.
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.
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).
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs | Atrybut | Wartość |
fseek(), ftell(), rewind(), fgetpos(), fsetpos() | Bezpieczeństwo wątkowe | MT-Safe |
POSIX.1-2001, POSIX.1-2008, C89, C99.
Angielska wersja tej strony pochodzi z wydania 4.07 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/.
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Andrzej Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 4.07 oryginału.
2015-08-08 | GNU |