Provided by:
manpages-pl-dev_20060617-3_all 
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.