Provided by: manpages-pl-dev_0.7-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
Uwaga! To tłumaczenie może być nieaktualne! 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)
INFORMACJE O TŁUMACZENIU
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia: man --locale=C 2 lseek Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.