Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       epoll_wait,  epoll_pwait  -  Attendre  un  evenement 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 systeme epoll_wait() attend un evenement sur  l'instance  epoll
       indiquee  par  le  descripteur epfd. La zone memoire pointee par events
       contiendra les evenements disponibles pour l'appelant.  Un  maximum  de
       maxevents  evenements  sont  renvoyes  par  epoll_wait().  Le parametre
       maxevents doit etre superieur a zero.

       L'appel  systeme  attend  pendant  une  duree   maximale   de   timeout
       millisecondes.  En  specifiant -1 comme valeur de timeout, epoll_wait()
       attendra  indefiniment,  alors   qu'un   timeout   nul   fera   revenir
       epoll_wait()  immediatement,  meme  si aucun evenement n'est disponible
       (avec un code de retour nul).

       La structure epoll_event est definie ainsi :

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

           struct epoll_event {
               uint32_t     events;    /* Evenements epoll */
               epoll_data_t data;      /* Variable utilisateur */
           };

       Le champ data de la structure renvoyee contiendra les memes donnees 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 evenements disponibles.

   epoll_pwait()
       La relation entre epoll_wait() et epoll_pwait() est similaire  a  celle
       entre  select(2)  et pselect(2) : de meme que pselect(2), epoll_pwait()
       permet a une application d'attendre de facon sure qu'un descripteur  de
       fichier soit pret ou qu'un signal arrive.

       L'appel a epoll_pwait() suivant :

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

       est equivalent a executer de facon 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  parametre  sigmask  peut valoir NULL, auquel cas, epoll_pwait() est
       equivalent a epoll_wait().

VALEUR RENVOY'EE

       Lorsqu'il  reussit,  l'appel  epoll_wait()   renvoie   le   nombre   de
       descripteurs prets pour les E/S demandees, ou zero si aucun descripteur
       n'est devenu pret pendant la duree timeout millisecondes. Si une erreur
       se   produit,  epoll_wait()  renvoie  -1  et  errno  contient  le  code
       approprie.

ERREURS

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

       EFAULT La zone memoire pointee  par  events  n'est  pas  accessible  en
              ecriture.

       EINTR  L'appel  a  ete  interrompu  par  un  signal  avant qu'aucun des
              evenements demandes 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
              parametre maxevents est inferieur ou egal a zero.

VERSIONS

       epoll_pwait() a ete ajoute au noyau Linux dans sa version 2.6.19.

       Le support pour epoll_pwait() est fourni a partir de la glibc 2.6.

CONFORMIT'E

       epoll_wait() est specifique a Linux, et a ete introduit dans  le  noyau
       2.5.44.

VOIR AUSSI

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

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.