Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

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()  lit  au  maximum count octets dans la zone memoire pointee par
       buf, et les ecrit dans le fichier reference par le descripteur fd.

       Le nombre d'octets ecrits peut etre inferieur a count par exemple si la
       place  disponible sur le peripherique est insuffisante, ou la limite de
       ressource  RLIMIT_FSIZE  est  atteinte  (consultez  setrlimit(2)),   ou
       l'appel  est interrompu par un gestionnaire de signal apres avoir ecrit
       moins de count octets. (Consultez aussi pipe(7).)

       Pour un fichier sur  lequel  lseek(2)  est  possible  (par  exemple  un
       fichier  ordinaire),  l'ecriture  a lieu a la position courante dans le
       fichier, et elle est deplacee du nombre d'octets effectivement  ecrits.
       Si  le fichier etait ouvert avec O_APPEND, la position avant l'ecriture
       est a la fin du fichier. La modification de la position  et  l'ecriture
       sont effectuees de facon atomique.

       POSIX  reclame  qu'une  lecture  avec read(2) 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 RENVOY'EE

       write()   renvoie  le  nombre  d'octets  ecrits  (0  signifiant  aucune
       ecriture), ou -1  s'il  echoue,  auquel  cas  errno  contient  le  code
       d'erreur.

       Si  count  vaut  0  et si fd correspond a un fichier ordinaire, write()
       peut renvoyer un code d'erreur si  l'une  des  erreurs  ci-dessous  est
       detectee.  Si  aucune  erreur n'est detectee, 0 sera renvoye sans autre
       effet de bord. Si count est nul et  fd  est  un  fichier  special,  les
       resultats sont indefinis.

ERREURS

       EAGAIN Le  descripteur  de fichier fd fait reference a un fichier autre
              qu'une socket et a ete marque comme non  bloquant  (O_NONBLOCK),
              et l'ecriture devrait bloquer.

       EAGAIN ou EWOULDBLOCK
              Le  descripteur  de fichier fd fait reference a un fichier autre
              qu'une socket et a ete marque comme non  bloquant  (O_NONBLOCK),
              et  l'ecriture  devrait bloquer. POSIX.1-2001 permet de renvoyer
              l'une ou l'autre des erreurs dans ce cas et n'exige pas que  ces
              constantes  aient  la  meme  valeur.  Une  application  portable
              devrait donc tester les deux possibilites.

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

       EDESTADDRREQ
              fd  fait  reference  a  une  socket  de datagramme pour laquelle
              l'adresse  du  correspondant  n'a  pas  ete   initialisee   avec
              connect(2).

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

       EFBIG  Tentative  d'ecrire un fichier dont la taille depasse un maximum
              dependant de l'implementation ou du processus, ou d'ecrire a une
              position qui depasse le maximum autorise.

       EINTR  L'appel  systeme a ete interrompu par un signal avant d'avoir pu
              ecrire quoi que ce soit ; consultez signal(7).

       EINVAL fd correspond a un objet sur lequel il est impossible  d'ecrire.
              Ou  bien  le  fichier  a ete 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 alignees correctement.

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

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

       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. (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 associe  a
       fd.

CONFORMIT'E

       SVr4, BSD 4.3, POSIX.1-2001.

       Sous  SVr4,  un appel write() peut etre interrompu, et renvoyer EINTR a
       n'importe quel moment, pas seulement avant l'ecriture des donnees.

NOTES

       Une reussite de write() n'offre aucune  garantie  que  les  donnees  se
       trouvent   sur  le  disque.  En  fait,  sur  certaines  implementations
       erronees, elle ne garantit  meme  pas  que  l'espace  suffisant  a  ete
       reserve  pour  les  donnees. La seule maniere d'etre sur de la reussite
       est d'invoquer fsync(2) apres avoir ecrit les donnees.

       Si un write() est interrompu  par  un  gestionnaire  de  signaux  avant
       d'avoir  ecrit  quoi  que ce soit, l'appel echoue avec EINTR ; s'il est
       interrompu apres avoir ecrit au moins  un  octet,  l'appel  reussit  et
       renvoie le nombre d'octets ecrits.

VOIR AUSSI

       close(2),  fcntl(2),  fsync(2), ioctl(2), lseek(2), open(2), pwrite(2),
       read(2), select(2), writev(2), fwrite(3)

COLOPHON

       Cette page fait partie de  la  publication  3.32  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain   Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

Linux                            29 aout 2010                         WRITE(2)