Available in

(1) (2) (3) (9) (n) (2)/de (2)/es (2)/fr (2)/ja (1)/ko (2)/ko (2)/nl (2)/pl (2)/ru (1)/zh_cn (2)/zh_cn (3)/zh_cn (1)/zh_tw (2)/zh_tw (3)/zh_tw

Contents

BEZEICHNUNG

read − von einer Datei lesen

SYNOPSIS

#include <unistd.h>

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

BESCHREIBUNG

read versucht aus der fd zugeordneten Datei count Bytes in den Puffer, auf den buf zeigt, zu schreiben. POSIX fordert, dass ein nachweisbar nach der Rückkehr von write() liegendes read() die neuen Daten liefern muss. Es sollte jedoch beachtet werden, dass 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).

COMMENTS

blog comments powered by Disqus