write

Autres langues

Langue: de

Version: 13. Januar 1996 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

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, 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 geschriebenen Bytes zurückgegeben (null heißt, dass 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).