Provided by:
manpages-pl-dev_20060617-1_all 
NAZWA
lseek - zmiana pozycji w pliku dla odczytu/zapisu
SKŁADNIA
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fildes, off_t offset, int whence);
OPIS
Funkcja lseek zmienia przesunięcie dla deskryptora pliku fildes na
wartość podaną w argumencie offset, zgodnie z dyrektywą whence w
następujący sposób:
SEEK_SET
Przesunięcie jest ustawiane na offset bajtów.
SEEK_CUR
Przesunięcie jest ustawiane na aktualną pozycję plus offset
bajtów.
SEEK_END
Przesunięcie jest ustawiane na rozmiar pliku plus offset bajtów.
Funkcja lseek umożliwia ustawienie przesunięcia w pliku poza istniejący
koniec pliku. Jeśli później w tym miejscu zostaną zapisane jakieś dane,
to kolejne odczyty danych z luki zwrócą bajty zerowe (aż do czasu, gdy
dane zostaną rzeczywiście w tej luce zapisane).
WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu lseek zwraca ustawione przesunięcie, liczone w
bajtach od początku pliku. W przeciwnym wypadku zwracane jest
(off_t)-1 oraz ustawiane jest errno w sposób wskazujący rodzaj błędu.
BŁĘDY
EBADF fildes nie jest otwartym deskryptorem pliku.
ESPIPE fildes jest związany z potokiem, gniazdem, lub FIFO.
EINVAL whence jest nieprawidłową wartością.
ZGODNE Z
SVr4, POSIX, BSD 4.3
OGRANICZENIA
urządzenie musi wspierać tę operację.
Ograniczenia specyficzne dla Linuksa, to: użycie lseek na urządzeniu
terminalowym zwraca ESPIPE. Inne systemy zwracają liczbę zapisanych
znaków, używając SEEK_SET do ustawiania licznika. Niektóre urządzenia,
np. /dev/null nie powodują wystąpienia błędu ESPIPE, ale zwracają
wskaźnik o nieokreślonej wartości.
UWAGI
Podczas konwersji starego kodu, należy podstawiać zamiast wartości
whence następujące makra:
stare nowe
0 SEEK_SET
1 SEEK_CUR
2 SEEK_END
L_SET SEEK_SET
L_INCR SEEK_CUR
L_XTND SEEK_END
SVR1-3 zwracają long zamiast off_t, BSD zwraca int.
Należy zauważyć, że deskryptory plików utworzone przez dup(2) i fork(2)
współdzielą wskaźnik bieżącej pozycji w pliku, więc wykonywanie
operacji typu "seek" na takich plikach może prowadzić do wyścigu.
ZOBACZ TAKŻE
dup(2), fork(2), open(2), fseek(3)