Provided by: manpages-fr-dev_2.45.1-1_all bug
 

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> ».