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 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)