read

READ(2)                           Systemaufrufe                          READ(2)



BEZEICHNUNG
       read - von einer Datei lesen

SYNOPSIS
       #include <unistd.h>

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

BESCHREIBUNG
       read versucht count Bytes vom Puffer, auf den buf zeigt, aus der zu fd
       gehörenden Datei zu lesen.  POSIX fordert, daß ein nachweisbar nach der
       Rückkehr von write() liegendes read() die neuen Daten liefern muß.  Es
       sollte jedoch beachtet werden, daß nicht alle Dateisysteme POSIX konform
       sind.

RÜCKGABEWERT
       Bei Erfolg wird die Anzahl von gelesenen Bytes zurückgegeben.  Dies
       können weniger als count Bytes sein, falls in einer regulären Datei ab
       der aktuellen Position nur noch weniger Bytes vorhanden sind, read()
       durch ein Signal unterbrochen wurde oder falls von einer nicht-regulären
       Datei ohne Verzögerung nicht mehr Bytes gelesen werden können.  Im
       Fehlerfalle wird -1 zurückgegeben und errno wird entsprechend gesetzt.

FEHLER
       EINTR  Der Aufruf wurde durch ein Signal unterbrochen bevor Daten gelesen
              wurden.

       EAGAIN Mit O_NONBLOCK wurde nicht-blockierende Ein-/Ausgabe gewählt und
              es lagen keine Daten zum sofortigen Lesen an.

       EISDIR fd referenziert ein Verzeichnis.

       EBADF  fd Ist keine gültige Dateikennzahl oder wurde nicht zum Lesen
              geöffnet.

       EINVAL fd gehört zu einer Datei, welche nicht zum Lesen geeignet ist.

       EFAULT buf ist außerhalb Deines ansprechbaren Adressraumes.

       Abhängig vom Objekt, welches mit fd verbunden ist, können auch andere
       Fehler auftreten.  POSIX spezifiziert nicht die Position in der Datei,
       nachdem ein Fehlers auftrat.  Falls read() bereits einige Bytes gelesen
       hat und dann ein Signal auftritt, so ist nicht spezifiziert, ob es erst
       mit der Anzahl der Bytes oder mit -1 zurückkehrt.

KONFORM ZU
       SVID, AT&T, POSIX, X/OPEN, BSD 4.3

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



Linux                           17. Januar, 1996                         READ(2)