Provided by: manpages-fr-dev_3.57d1p1-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.57 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)