Provided by: manpages-pl-dev_20060617-3_all bug

NAZWA

       read - odczyt z deskryptora pliku

SK/LADNIA

       #include <unistd.h>

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

OPIS

       read() probuje odczyta maksymalnie count bajtow z deskryptora plikow fd
       do bufora, ktorego pocztek znajduje si w buf.

       Jeli count jest rowne zero, read() zwraca  zero  i  nic  wicej  si  nie
       dzieje.  Jeli count jest wiksze ni SSIZE_MAX, wynik jest nieokrelony.

WARTO ZWRACANA

       Po  pomylnym  zakoczeniu  zwracana jest liczba odczytanych bajtow (zero
       oznacza koniec pliku), oraz o t warto przesuwana jest pozycja w  pliku.
       Nie  jest  bldem, jeli liczba ta jest mniejsza ni liczba danych bajtow;
       moe si to zdarzy np. poniewa chwilowo dostpnych jest mniej bajtow  (moe
       z  powodu  bliskoci koca plikow, a moe z powodu czytania z potoku lub z
       terminala), lub poniewa read() zostalo przerwane sygnalem.   Po  bldzie
       zwracane jest -1 i odpowiednio ustawiane errno.  W tym wypadku nie jest
       okrelone czy pozycja w pliku si zmieni.

B/LDY

       EINTR  Wywolanie zostalo przerwane sygnalem przed odczytaniem danych.

       EAGAIN Przy uyciu O_NONBLOCK wybrano nieblokujce we/wy, a nie ma akurat
              danych dostpnych do odczytania natychmiast.

       EIO    Bld  we/wy.  Zdarza  si to na przyklad, gdy proces jest w grupie
              procesow tla probuje czyta z kontrolujcego tty,  i  blokuje  lub
              ignoruje   sygnal   SIGTTIN,   lub   jego  grupa  procesow  jest
              osierocona. Moe si to rownie zdarzy, gdy  wystpi  niskopoziomowy
              bld we/wy podczas odczytu z dysku lub tamy.

       EISDIR fd odnosi si do katalogu.

       EBADF  fd nie jest prawidlowym deskryptorem pliku, lub nie jest otwarty
              dla odczytu.

       EINVAL fd wskazuje na obiekt nieodpowiedni do odczytu.

       EINVAL fd jest skojarzony z obiektem, ktory  nie  jest  odpowiedni  dla
              odczytu.

       EFAULT buf wskazuje poza dostpn dla uytkownika przestrze adresow.

       Mog  si  pojawi inne bldy, zalenie od obiektu skojarzonego z fd.  POSIX
       zezwala by  read  ktorego  przerwano  po  odczytaniu  fragmentu  danych
       zwrocil  -1 (z errno ustawionym na EINTR) lub by zwroil ilo odczytanych
       bajtow.

ZGODNE Z

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

OGRANICZENIA

       Na systemach plikow NFS, odczytanie niewielkiej iloci danych  spowoduje
       uaktualnienie   znacznika  czasu  tylko  za  pierwszym  razem.  Nastpne
       wywolania tego nie uczyni. Jest to zwizana z buforowaniem atrybutow  po
       stronie   klienta,   gdy  wikszo  (jeeli  nie  wszystkie)  klienty  NFS
       pozostawiaj  uaktualnianie  atime  serwerowi,  a  odczyty  po   stronie
       klienta,  odbywajce  si  z  buforow klienta nie spowoduj  uaktualnienia
       atime na serwerze, gdy nie ma  wowczas  odczytow  po  stronie  serwera.
       Semantyk  UNIX-a mona uzyska poprzez wylczenie buforowania atrybutow po
       stronie klienta. Jednake, w wikszoci przypadkow  spowoduje  to  istotny
       wzrost obcienia serwera i zmniejszy wydajno.

       Wiele systemow plikow i dyskow jest uwaane za dostatecznie szybkie, aby
       implementacja O_NONBLOCK byla uwaana za zbdn. Tak wic,  O_NONBLOCK  moe
       nie by dostpne dla plikow i/lub dyskow.

ZOBACZ TAKE

       close(2),   fcntl(2),   ioctl(2),  lseek(2),  readdir(2),  readlink(2),
       select(2), write(2), fread(3)

INFORMACJE O T/LUMACZENIU

       Powysze tlumaczenie pochodzi z nieistniejcego ju  Projektu  Tlumaczenia
       Manuali  i  moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
       opisem a rzeczywistym zachowaniem  opisywanego  programu  lub  funkcji,
       prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.