Provided by: manpages-pl-dev_0.7-1_all bug

NAZWA

       read - odczyt z deskryptora pliku

SKŁADNIA

       #include <unistd.h>

       ssize_t read(int fd, void *buf, size_t count);

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       read()  próbuje  odczytać  maksymalnie  count  bajtów z deskryptora plików fd do bufora, którego początek
       znajduje się w buf.

       Jeśli count jest równe zero, read() zwraca zero i nic więcej się nie dzieje.  Jeśli  count  jest  większe
       niż SSIZE_MAX, wynik jest nieokreślony.

WARTOŚĆ ZWRACANA

       Po  pomyślnym  zakończeniu zwracana jest liczba odczytanych bajtów (zero oznacza koniec pliku), oraz o tę
       wartość przesuwana jest pozycja w pliku.  Nie jest błędem, jeśli  liczba  ta  jest  mniejsza  niż  liczba
       żądanych  bajtów;  może  się to zdarzyć np. ponieważ chwilowo dostępnych jest mniej bajtów (może z powodu
       bliskości końca plików, a może z powodu czytania z potoku lub z terminala), lub ponieważ  read()  zostało
       przerwane  sygnałem.   Po błędzie zwracane jest -1 i odpowiednio ustawiane errno.  W tym wypadku nie jest
       określone czy pozycja w pliku się zmieni.

BŁĘDY

       EINTR  Wywołanie zostało przerwane sygnałem przed odczytaniem danych.

       EAGAIN Przy użyciu O_NONBLOCK wybrano nieblokujące we/wy, a nie ma akurat danych dostępnych do odczytania
              natychmiast.

       EIO    Błąd we/wy. Zdarza się to na przykład, gdy proces jest w grupie  procesów  tła  próbuje  czytać  z
              kontrolującego  tty,  i  blokuje  lub  ignoruje  sygnał  SIGTTIN,  lub  jego  grupa  procesów jest
              osierocona. Może się to również zdarzyć, gdy wystąpi niskopoziomowy błąd we/wy podczas  odczytu  z
              dysku lub taśmy.

       EISDIR fd odnosi się do katalogu.

       EBADF  fd nie jest prawidłowym deskryptorem pliku, lub nie jest otwarty dla odczytu.

       EINVAL fd wskazuje na obiekt nieodpowiedni do odczytu.

       EINVAL fd jest skojarzony z obiektem, który nie jest odpowiedni dla odczytu.

       EFAULT buf wskazuje poza dostępną dla użytkownika przestrzeń adresową.

       Mogą  się  pojawić  inne  błędy,  zależnie  od  obiektu skojarzonego z fd.  POSIX zezwala by read którego
       przerwano po odczytaniu fragmentu danych zwrócił -1 (z errno ustawionym na EINTR) lub  by  zwróćił  ilość
       odczytanych bajtów.

ZGODNE Z

       SVr4, SVID, AT&T, POSIX, X/OPEN, BSD 4.3

OGRANICZENIA

       Na  systemach  plików  NFS,  odczytanie niewielkiej ilości danych spowoduje uaktualnienie znacznika czasu
       tylko za pierwszym razem. Następne wywołania tego nie uczynią. Jest to związana z buforowaniem  atrybutów
       po  stronie  klienta,  gdyż większość (jeżeli nie wszystkie) klienty NFS pozostawiają uaktualnianie atime
       serwerowi, a odczyty po stronie klienta, odbywające się z buforów klienta  nie  spowodują   uaktualnienia
       atime  na  serwerze,  gdyż  nie  ma  wówczas  odczytów po stronie serwera. Semantykę UNIX-a można uzyskać
       poprzez wyłączenie buforowania atrybutów po stronie klienta. Jednakże, w większości przypadków  spowoduje
       to istotny wzrost obciążenia serwera i zmniejszy wydajność.

       Wiele  systemów  plików  i dysków jest uważane za dostatecznie szybkie, aby implementacja O_NONBLOCK była
       uważana za zbędną. Tak więc, O_NONBLOCK może nie być dostępne dla plików i/lub dysków.

ZOBACZ TAKŻE

       close(2), fcntl(2), ioctl(2), lseek(2), readdir(2), readlink(2), select(2), write(2), fread(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 read

       Prosimy   o   pomoc   w   aktualizacji   stron   man  -  więcej  informacji  można  znaleźć  pod  adresem
       http://sourceforge.net/projects/manpages-pl/.

Linux 2.0.32                                       1997-07-12                                            READ(2)