Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       lio_listio - Initier une liste de requêtes d'E/S

SYNOPSIS

       #include <aio.h>

       int lio_listio(int mode, struct aiocb *const aiocb_list[],
                      int nitems, struct sigevent *sevp);

       Effectuez l'édition des liens avec l'option -lrt.

DESCRIPTION

       La fonction lio_listio initie la liste des opérations E/S décrite par le tableau aiocb_list.

       Le champ mode peut prendre une des valeurs suivantes :

       LIO_WAIT    L'appel  est  bloquant tant que toutes les opérations ne sont pas complétées. L'argument sevp
                   est ignoré.

       LIO_NOWAIT  Les opérations d'E/S sont  mises  en  file  d'attente  pour  traitement  et  l'appel  renvoie
                   immédiatement.  Lorsque toutes les opérations d'E/S se terminent, une notification asynchrone
                   est émise, comme spécifié dans  le  paramètre  sevp ;  consultez  sigevent(7)  pour  plus  de
                   détails. Si sevp est NULL, aucune notification asynchrone n'est émise.

       Le  paramètre  aiocb_list  est  un  tableau  de  pointeurs  vers  des  structures aiocb qui décrivent les
       opérations d'E/S. Ces opérations sont exécutées dans un ordre non spécifié. Le paramètre nitems  spécifie
       la taille du tableau aiocb_list. Les pointeurs NULL dans aiocb_list sont ignorés.

       Dans  chaque  bloc de contrôle d'aiocb_list, le champ aio_lio_opcode spécifie l'opération d'E/S à initier
       comme ci-dessous :

       LIO_READ  Initier une opération de lecture. L'opération est mise en file d'attente comme lors d'un  appel
                 à aio_read(3) spécifiant ce bloc de contrôle.

       LIO_WRITE Initier  une opération d'écriture. L'opération est mise en file d'attente comme pour un appel à
                 aio_write(3) spécifiant ce bloc de contrôle.

       LIO_NOP   Ignorer ce bloc de contrôle.

       Les champs restants dans chaque bloc de contrôle ont le même sens que pour aio_read(3)  et  aio_write(3).
       Les  champs  aio_sigevent  de  chaque  bloc  de  contrôle   peuvent  être  utilisés  pour  spécifier  des
       notifications pour chaque opération d'E/S (consultez sigevent(7)).

VALEUR RENVOYÉE

       Si mode vaut LIO_NOWAIT, lio_listio() renvoie 0 si toutes les opérations d'E/S ont été mises avec  succès
       en file d'attente. Sinon, elle renvoie -1 et définit errno en conséquence.

       Si  mode vaut LIO_WAIT, lio_listio() renvoie 0 lorsque toutes les opérations d'E/S se sont terminées avec
       succès. Sinon, elle renvoie -1 et définit errno en conséquence.

       La valeur de retour de lio_listio() fournit seulement des informations à propos de l'appel  lui-même,  et
       non  à propos de chaque opération d'E/S. Une ou plusieurs opérations peuvent échouer, mais cela n'empêche
       pas les autres opérations de se terminer. L'état de chaque opération d'E/S de aiocb_list peut être obtenu
       avec aio_error(3). Lorsqu'une opération s'est  terminée,  son  code  de  retour  peut  être  obtenu  avec
       aio_return(3).  Chaque  opération  d'E/S  peut  échouer  pour  les  raisons  décrites dans aio_read(3) et
       aio_write(3).

ERREURS

       La fonction lio_listio() peut échouer pour les raisons suivantes :

       EAGAIN Ressources insuffisantes.

       EAGAIN Le nombre d'opérations d'E/S spécifié dans nitems dépasse la valeur limite AIO_MAX.

       EINVAL mode est non valable, ou nitems dépasse la valeur limite AIO_LISTIO_MAX.

       EINTR  mode valait LIO_WAIT et un signal a été attrapé avant que toutes les opérations  d'E/S  ne  soient
              terminées  (il  peut s'agir de l'un des signaux utilisés pour les notifications asynchrones de fin
              d'opération d'E/S).

       EIO    Une ou plusieurs opérations spécifiées dans aiocb_list ont  échoué.  L'application  peut  vérifier
              l'état de chaque opération avec aio_return(3).

       Si  lio_listio()  échoue avec l'erreur EAGAIN, EINTR ou EIO, alors certaines des opérations définies dans
       aiocb_list peuvent avoir été initiées. Si lio_listio() échoue pour tout autre raison,  alors  aucune  des
       opérations d'E/S n'aura été initiée.

VERSIONS

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

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. Les blocs de contrôle ne
       doivent pas être changés pendant que des opérations d'E/S sont en cours. Les tampons qui  seront  lus  ou
       écrits  ne  doivent  pas  être  accédés  durant  les  opérations ou des résultats indéterminés peuvent se
       produire. Les zones mémoires utilisées 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_return(3), aio_suspend(3), aio_write(3), aio(7)

COLOPHON

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

TRADUCTION

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

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

                                                   8 mai 2012                                      LIO_LISTIO(3)