Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       aio_write - Écriture asynchrone

SYNOPSIS

       #include <aio.h>

       int aio_write(struct aiocb *aiocbp);

       Éditer les liens avec -lrt.

DESCRIPTION

       La  fonction  aio_write()  met  en  file  d'attente la requête d'E/S décrite par le tampon
       pointé par aiocbp. Cette fonction est la version asynchrone de write(2). Les paramètres de
       l'appel sont

           write(fd, buf, count)

       correspondent  (dans  l'ordre) au membre aio_fildes, aio_buf et aio_nbytes de la structure
       pointée par aiocbp. Consultez aio(7) pour une description de la structure aiocb.

       Si O_APPEND n'est pas défini, la donnée est écrite en commençant  à  la  position  absolue
       aiocbp->aio_offset,  quelle que soit la position actuelle dans le fichier. Si O_APPEND est
       défini, les données sont écrites à la fin du fichier dans le même ordre  que  aio_write().
       Après cet appel, la valeur de la position « courante » dans le fichier est indéfinie.

       « Asynchrone »  signifie  que cet appel se termine aussitôt que la requête a été mise dans
       la file d'attente ; l'écriture peut être ou ne pas être achevée lorsque  l'appel  termine.
       On  peut  tester  cet  achèvement  en  utilisant  aio_error(3).  La valeur de retour d'une
       opération d'E/S terminée peut être obtenue avec aio_return(3). La notification  asynchrone
       de  la  fin  de  l'E/S  peut  être  obtenue  en  définissant aiocbp->aio_sigevent de façon
       appropriée. Consultez sigevent(7) pour plus de détails.

       Si _POSIX_PRIORITIZED_IO est définie et si le fichier le gère, l'opération asynchrone  est
       soumise à une priorité égale à celle du processus appelant moins aiocbp->aio_reqprio.

       Le membre aiocbp->aio_lio_opcode est ignoré.

       Aucune donnée n'est écrite dans un fichier normal au-delà de son décalage maximum.

VALEUR RENVOYÉE

       En cas de réussite, 0 est renvoyé. En cas d'erreur, la requête n'est pas mise dans la file
       d'attente, -1 est renvoyé et errno est définie en conséquence. Si une erreur est  détectée
       plus  tard, elle sera signalée via aio_return(3) (état de retour -1) et aio_error(3) (état
       d'erreur : tout ce qu'on veut, récupéré dans errno, comme EBADF).

ERREURS

       EAGAIN Ressources insuffisantes.

       EBADF  aio_fildes n'est pas un descripteur de fichier valable ouvert en écriture.

       EFBIG  Le fichier est un fichier normal, nous voulons écrire au moins un  octet,  mais  la
              position de départ est égale ou au-delà du décalage maximum du fichier.

       EINVAL Une  ou  plusieurs  valeurs  parmi  aio_offset, aio_reqprio, aio_nbytes ne sont pas
              valables.

       ENOSYS aio_write() n'est pas implémenté.

VERSIONS

       La fonction aio_write() est disponible depuis la glibc 2.1.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├────────────┼──────────────────────┼─────────┤
       │aio_write() │ Sécurité des threads │ MT-Safe │
       └────────────┴──────────────────────┴─────────┘

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008.

NOTES

       C'est une bonne idée de mettre à zéro le bloc de contrôle avant de l'utiliser. Ce bloc  de
       contrôle ne doit pas être modifié pendant l'opération d'écriture. Il ne faut pas accéder à
       la zone tampon à écrire pendant l'opération car des résultats indéfinis peuvent  survenir.
       Les zones mémoires atteintes doivent rester valables.

       Des  opérations  d'E/S  simultanées  spécifiant  la  même  structure  aiocb produisent des
       résultats indéfinis.

VOIR AUSSI

       aio_cancel(3), aio_error(3),  aio_fsync(3),  aio_read(3),  aio_return(3),  aio_suspend(3),
       lio_listio(3), aio(7)

COLOPHON

       Cette  page  fait partie de la publication 5.10 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à debian-l10n-french@lists.debian.org ⟨⟩.

                                        15 septembre 2017                            AIO_WRITE(3)