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

NOM

       epoll_wait, epoll_pwait - Attendre un événement sur un descripteur epoll

SYNOPSIS

       #include <sys/epoll.h>

       int epoll_wait(int epfd, struct epoll_event *events,
                      int maxevents, int timeout);
       int epoll_pwait(int epfd, struct epoll_event *events,
                      int maxevents, int timeout,
                      const sigset_t *sigmask);

DESCRIPTION

       L'appel  système  epoll_wait()  attend  un  événement sur l'instance epoll indiquée par le
       descripteur epfd. La zone mémoire pointée par events contiendra les événements disponibles
       pour  l'appelant.  Un  maximum  de maxevents événements sont renvoyés par epoll_wait(). Le
       paramètre maxevents doit être supérieur à zéro.

       L'appel système attend pendant une durée maximale de timeout millisecondes. En  spécifiant
       -1  comme  valeur  de timeout, epoll_wait() attendra indéfiniment, alors qu'un timeout nul
       fera revenir epoll_wait() immédiatement, même si aucun événement n'est disponible (avec un
       code de retour nul).

       La structure epoll_event est définie ainsi :

           typedef union epoll_data {
               void    *ptr;
               int      fd;
               uint32_t u32;
               uint64_t u64;
           } epoll_data_t;

           struct epoll_event {
               uint32_t     events;    /* Événements epoll */
               epoll_data_t data;      /* Variable utilisateur */
           };

       Le  champ  data  de la structure renvoyée contiendra les mêmes données que lors de l'appel
       epoll_ctl(2) (EPOLL_CTL_ADD, EPOLL_CTL_MOD) tandis  que  le  champ  events  contiendra  le
       masque de bit des événements disponibles.

   epoll_pwait()
       La  relation  entre epoll_wait() et epoll_pwait() est similaire à celle entre select(2) et
       pselect(2) : de même que pselect(2), epoll_pwait() permet à une application d'attendre  de
       façon sûre qu'un descripteur de fichier soit prêt ou qu'un signal arrive.

       L'appel à epoll_pwait() suivant :

           ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask);

       est équivalent à exécuter de façon atomique les appels suivants :

           sigset_t origmask;

           sigprocmask(SIG_SETMASK, &sigmask, &origmask);
           ready = epoll_wait(epfd, &events, maxevents, timeout);
           sigprocmask(SIG_SETMASK, &origmask, NULL);

       Le  paramètre  sigmask  peut  valoir  NULL,  auquel  cas,  epoll_pwait()  est équivalent à
       epoll_wait().

VALEUR RENVOYÉE

       Lorsqu'il réussit, l'appel epoll_wait() renvoie le nombre de descripteurs prêts  pour  les
       E/S  demandées,  ou  zéro  si aucun descripteur n'est devenu prêt pendant la durée timeout
       millisecondes. Si une erreur se produit, epoll_wait() renvoie -1 et errno contient le code
       approprié.

ERREURS

       EBADF  epfd n'est pas un descripteur de fichier valable.

       EFAULT La zone mémoire pointée par events n'est pas accessible en écriture.

       EINTR  L'appel a été interrompu par un signal avant qu'aucun des événements demandés n'ait
              lieu ou que la temporisation timeout n'expire ; consultez signal(7).

       EINVAL Le descripteur epfd  fourni  n'est  pas  un  descripteur  epoll,  ou  le  paramètre
              maxevents est inférieur ou égal à zéro.

VERSIONS

       epoll_wait a été introduite dans le noyau Linux 2.6. La prise en charge par la glibc a été
       ajoutée dans la version 2.3.2.

       epoll_pwait a été introduite dans le noyau Linux 2.6.19. La prise en charge par la glibc a
       été ajoutée dans la version 2.6.

CONFORMITÉ

       epoll_wait() est spécifique à Linux.

VOIR AUSSI

       epoll_create(2), epoll_ctl(2), epoll(7)

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  être  trouvées  à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <URL:http://po4a.alioth.debian.org/> par l'équipe 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'équipe  francophone  de
       traduction de Debian (2006-2009).

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