WRITE(2) Manuel du programmeur Linux WRITE(2)
NOM
write - Ecrire dans un descripteur de fichier.
SYNOPSIS
#include <unistd.h>
ssize_t write(int fd, const char *buf, size_t count);
DESCRIPTION
write écrit jusqu'à count octets dans le fichier associé
au descripteur fd depuis le buffer pointé par buf. POSIX
réclame qu'une lecture avec read() effectuée après le
retour d'une écriture avec write(), renvoie les nouvelles
données. Notez que tous les systèmes de fichiers ne sont
pas compatibles avec POSIX.
VALEUR RENVOYÉE
write renvoie le nombre d'octets écrits (0 signifiant
aucune ecriture), ou -1 s'il échoue, auquel cas errno con
tient le code d'erreur.
Si count vaut zéro, et si le descripteur est associé à un
fichier normal, 0 sera renvoyé sans effets de bord. Pour
un fichier spécial, les résultats ne sont pas portables.
ERREURS
EBADF fd n'est pas un descripteur de fichier valide, ou
n'est pas ouvert en écriture.
EINVAL fd correspond à un objet ne permettant pas l'écrit
ure.
EFAULT buf pointe en dehors de l'espace d'adressage acces
sible.
EPIPE fd est connecté à un tube (pipe) ou une socket dont
l'autre extrémité est fermée. Quand ceci se pro
duit, le processus écrivain reçoit un signal SIG
PIPE . S'il intercepte, bloque ou ignore ce sig
nal, EPIPE est renvoyé.
EAGAIN L'écriture est non-bloquante (attribut O_NONBLOCK
du descripteur), et il n'y a plus de place dans le
tube ou la socket correspondant à fd pour y écrire
immédiatement.
EINTR L'appel système a été interrompu par un signal
avant d'avoir pu écrire quoique ce soit.
ENOSPC Le périphérique correspondant à fd n'a plus de
place disponible.
EIO Une erreur d'entrée/sortie bas niveau s'est
Linux 15 Avril 1997 1
WRITE(2) Manuel du programmeur Linux WRITE(2)
produite durant la modification de l'i-noeud.
D'autres erreurs peuvent se produire suivant le type
d'objet associé à fd.
CONFORMITÉ
SVr4, SVID, POSIX, X/OPEN, BSD 4.3. SVr4 mentionne des
conditions d'erreur supplémentaires EDEADLK, EFBIG,
ENOLCK, ENOLNK, ENOSR, ENXIO, EPIPE, et ERANGE. Sous
SVr4, un appel write() peut être interrompu, et renvoyer
EINTR à n'importe quel moment, pas seulement avant l'écri
ture des données.
VOIR AUSSI
open(2), read(2), fcntl(2), close(2), lseek(2), select(2),
ioctl(2), fwrite(3).
TRADUCTION
Christophe Blaess, 1997.
Linux 15 Avril 1997 2