WRITE(2)

BEZEICHNUNG
write - in eine Datei schreiben

ÜBERSICHT
#include <unistd.h>

ssize_t write(int fd, const char *buf, size_t count);

BESCHREIBUNG
write versucht count Bytes vom Puffer, auf den buf zeigt, in die zu fd gehörende Datei zu schreiben. 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 geschriebenen Bytes zurückgegeben (null heißt, daß nichts geschrieben wurde). Im Fehlerfalle wird -1 zurückgegeben und errno wird entsprechend gesetzt. Wenn count 0 ist, dann wird 0 zurückgegeben und sonst geschieht nichts. Bei anderen Dateien sind die Ergebnisse nicht portabel.

FEHLER

EBADF
    fd ist keine gültige Dateikennzahl oder die Datei wurde nicht zum Schreiben geöffnet.

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

EFAULT
    buf ist außerhalb Deines ansprechbaren Adressraumes.

EPIPE
    fd ist mit einer pipe oder einem socket verbunden, deren lesendes Ende geschlossen ist. In diesem Falle empfängt der schreibende Prozess ein SIGPIPE Signal. Wird dieses abgefangen, blockiert oder ignoriert, wird EPIPE zurückgegeben.

EAGAIN
    Mit O_NONBLOCK wurde nicht-blockierende Ein-/Ausgabe gewählt, aber in der mit fd verbundenen pipe oder dem Socket war kein Platz mehr, um die Daten sofort zu schreiben.

EINTR
    Der Aufruf wurde durch ein Signal unterbrochen, bevor Daten geschrieben werden konnten.

ENOSPC
    Das Gerät, welches die Datei enthält, welche durch fd referenziert ist, hat keinen Platz für die Daten.

Abhängig vom Objekt, welches mit fd verbunden ist, können auch andere Fehler auftreten.

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

SIEHE AUCH
open(2), read(2), fcntl(2), close(2), lseek(2), select(2), ioctl(2), fwrite(3).