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 prez
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¶
- EBADF
- Podanego strumienia stream nie można
pozycjonować.
- EINVAL
- Argument whence funkcji fseek() nie jest jednym z
SEEK_SET, SEEK_END lub SEEK_CUR. Albo: wynikowe
przesunięcie pliku będzie ujemne.
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¶
C89, C99.
ZOBACZ TAKŻE¶
lseek(2),
fseeko(3)
O STRONIE¶
Angielska wersja tej strony pochodzi z wydania 3.71 projektu Linux
man-pages. Opis projektu, informacje dotyczące zgłaszania
błędów, oraz najnowszą wersję
oryginału można znaleźć pod adresem
http://www.kernel.org/doc/man-pages/.
TŁUMACZENIE¶
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ą
3.71 oryginału.