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 ecrit jusqu'a count octets dans le fichier associe au descripteur fd depuis le buffer pointe par buf. POSIX reclame qu'une lecture avec read() effectuee apres le retour d'une ecriture avec write(), renvoie les nouvelles donnees. Notez que tous les systemes de fichiers ne sont pas compatibles avec POSIX.

VALEUR RENVOYEE
read renvoie le nombre d'octets ecrits (0 signifiant aucune ecriture), ou -1 en cas d'echec, auquel cas errno contient le code d'erreur. Si count vaut zero, et si le descripteur est associe a un fichier normal, 0 sera renvoye sans effets de bord. Pour un fichier special, les resultats ne sont pas portables.

ERREURS

EBADF
    fd n'est pas un descripteur de fichier valide, ou n'est pas ouvert en ecriture.

EINVAL
    fd correspond a un objet ne permettant pas l'ecriture.

EFAULT
    buf pointe en dehors de l'espace d'adresse accessible.

EPIPE
    fd est connecte a un tube (pipe) ou une socket dont l'autre extremite est fermee. Quand ceci se produit, le processus ecrivain recoit un signal SIGPIPE . Si il intercepte, bloque ou ignore ce signal, EPIPE est renvoye.

EAGAIN
    L'ecriture est non-bloquante (attribut O_NONBLOCK du descripteur), et il n'y a plus de place dans le tube ou la socket correspondant a fd pour y ecrire immediatement.

EINTR
    L'appel systeme a ete interrompu par un signal avant d'avoir pu ecrire quoique ce soit.

ENOSPC
    Le peripherique correspondant a fd n'a plus de place disponible.

EIO Une erreur d'entree/sortie bas niveau s'est produite durant la modification de l'i-noeud.

D'autres erreurs peuvent se produire suivant le type d'objet associe a fd.

CONFORMITE
SVID, AT&T, POSIX, X/OPEN, BSD 4.3 SVr4, SVID, POSIX, X/OPEN, BSD 4.3. SVr4 mentionne des conditions d'erreur supplementaires EDEADLK, EFBIG, ENOLCK, ENOLNK, ENOSR, ENXIO, EPIPE, et ERANGE. Sous SVr4, un appel write() peut etre interrompu, et renvoyer EINTR a n'importe quel moment, pas seulement avant l'ecriture des donnees.

VOIR AUSSI
open(2), read(2), fcntl(2), close(2), lseek(2), select(2), ioctl(2), fwrite(3).