Provided by: manpages-pl-dev_0.7-2_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/.