Index général des pages de man   Index Section man 2   Table des Matières de write   Imprime la page de man write en mode Texte   Recherche dans les pages de man   Page de man en français      Fonctions du système (section 2)

write

 
  

Nom

write - Ecrire dans un descripteur de fichier.

Synopsis

#include <unistd.h>

ssize_t write(int fd, const void *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 contient 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'écriture.
EFAULT
buf pointe en dehors de l'espace d'adressage accessible.
EPIPE
fd est connecté à un tube (pipe) ou une socket dont l'autre extrémité est fermée. Quand ceci se produit, le processus écrivain reçoit un signal SIGPIPE . S'il intercepte, bloque ou ignore ce signal, 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 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'écriture 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.


Table des matières


Haut de page

© 1996-2000 Adaptation française "Christophe Blaess"