epoll_wait   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (2)
Updated: 23 avril 2008
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
epoll_wait - Attendre un évément sur un descripteur epoll  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
L'appel système epoll_wait() attend un événement sur le descripteur epoll epfd pendant une durée maximale de timeout millisecondes. La zone mémoire pointée par events contiendra les événements disponibles pour l'appelant. Jusqu'à maxevents événements sont renvoyés par epoll_wait(). Le paramètre maxevents doit être supérieur à zéro. 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 (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énement 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()   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
La relation entre epoll_wait() et epoll_pwait() est analogue à la relation entre select(2) et pselect(2) : comme pselect(2), epoll_pwait() permet à une application d'attendre en toute sécurité soit qu'un descripteur de fichier soit prêt, soit qu'un signal soit intercepté.

L'appel epoll_pwait() suivant :


    ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask);
est équivalent à exécuter atomiquement les appels suivants :

    sigset_t origmask;

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

L'arguement sigmask peut être NULL, auquel cas epoll_pwait() est équivalent à epoll_wait().  




VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Lorsqu'il réussit, l'appel epoll_wait() renvoie le nombe 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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
EBADF
epfd n'est pas un descripteur de fichier valide.
EFAULT
La zone mémoire pointée par events n'est pas accessible en écriture.
EINTR
L'appel a été interrompu par un gestionnaire de signaux avant que l'un des événement demandé ne survienne, ou bien le délai timeout a expiré.
EINVAL
epfd n'est pas un descripteur epoll, ou maxevents est inférieur ou égal à zéro.
 



VERSIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
epoll_pwait() a été ajouté à Linux dans le noyau 2.6.19.

La prise en charge de epoll_pwait() est assurée depuis la glibc 2.6.  




CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
epoll_wait() est spécifique à Linux et a été introduit dans Linux 2.5.44.  



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
epoll_create(2), epoll_ctl(2), epoll(7)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 25 juillet 2003 et révisée le 6 juin 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 epoll_wait ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
epoll_pwait()
VALEUR RENVOYÉE
ERREURS
VERSIONS
CONFORMITÉ
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EBADFERREURS
EFAULTERREURS
EINTRERREURS
EINVALERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:50:00, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional