lseek

LSEEK(2)                 Podręcznik programisty Linuksa                 LSEEK(2)



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



Linux                              2001-09-24                           LSEEK(2)