Provided by:
manpages-fr-dev_2.45.1-1_all 
NOM
write - Écrire 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 descrip‐
teur fd depuis le tampon pointé par buf. POSIX réclame qu’une lecture
avec read() effectuée après le retour d’une écriture avec write(), ren‐
voie les nouvelles données. Notez que tous les systèmes de fichiers ne
sont pas compatibles avec POSIX.
write() renvoie le nombre d’octets écrits (0 signifiant aucune écrit‐
ure), ou -1 s’il échoue, auquel cas errno contient le code d’erreur.
Si count vaut 0 et si fd correspond à un fichier normal, write() peut
renvoyer un code d’erreur si l’une des erreurs ci-dessous est détectée.
Si aucune erreur n’est détectée, 0 sera renvoyé sans autre effet de
bord. Si count est nul et fd est un fichier spécial, les résultats sont
indéfinis.
ERREURS
EAGAIN L’écriture est non bloquante (attribut O_NONBLOCK du descrip‐
teur), et l’opération devrait bloquer.
EBADF fd n’est pas un descripteur de fichier valide, ou n’est pas
ouvert en écriture.
EFAULT buf pointe en dehors de l’espace d’adressage accessible.
EFBIG Tentative d’écrire un fichier dont la taille dépasse un maximum
dépendant de l’implémentation ou du processus, ou d’écrire à une
position qui dépasse le maximum autorisé.
EINTR L’appel système a été interrompu par un signal avant d’avoir pu
écrire quoi que ce soit.
EINVAL fd correspond à un objet sur lequel il est impossible d’écrire.
Ou bien le fichier a été ouvert avec l’attribut O_DIRECT, et
soit l’adresse de buf, soit la valeur de count, soit la position
actuelle dans le fichier ne sont pas alignées correctement.
EIO Une erreur d’entrée-sortie bas niveau s’est produite durant la
modification de l’inœud.
ENOSPC Le périphérique correspondant à fd n’a plus de place disponible.
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. (Ainsi la valeur de retour de
write n’est vue que si le programme intercepte, bloque ou ignore
ce signal.
D’autres erreurs peuvent se produire suivant le type d’objet associé à
fd.
CONFORMIT
SVr4, BSD 4.3, POSIX.1-2001.
Sous SVr4, un appel write() peut être interrompu, et renvoyer EINTR à
n’importe quel moment, pas seulement avant l’écriture des données.
NOTES
Une réussite de write() n’offre aucune garantie que les données se
trouvent sur le disque. En fait, sur certaines implémentations
erronées, elle ne garantit même pas que l’espace suffisant a été
réservé pour les données. La seule manière d’être sûr de la réussite
est d’invoquer fsync(2) après avoir écrit les données.
close(2), fcntl(2), fsync(2), ioctl(2), lseek(2), open(2), pwrite(2),
read(2), select(2), writev(2), fwrite(3)
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».