epoll_wait

Autres langues

Langue: fr

Version: 25 juillet 2003 (openSuse - 09/10/07)

Section: 2 (Appels système)

NOM

epoll_wait - Attendre un évément sur un descripteur epoll.

SYNOPSIS

#include <sys/epoll.h>

int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout)

DESCRIPTION

Attendre 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(2). Le paramètre maxevents doit être supérieur à zéor. En spécifiant -1 comme valeur de timeout, epoll_wait(2) attendra indéfiniment, alors qu'un timeout nul fera revenir epoll_wait(2) immédiatement, même si aucun événement n'est disponible (code de retour nul) La struct 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.

VALEUR RENVOYÉE

Lorrsqu'il réussit, l'appel epoll_wait(2) renvoie le nombe de descritpeurs 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(2) renvoie -1 et errno contient le code approprié.

ERREURS

EBADF
epfd n'est pas un descripteur de fichier valide.
EINVAL
Le descripteur epfd fourni n'est pas un descripteur epoll, ou le paramètre maxevents est inférieur ou égal à zéro.
EFAULT
La zone mémoire pointée par events n'est pas accessible en écriture.

CONFORMIITÉ

epoll_wait(2) est une nouvelle API introduite dans Linux 2.5.44. Son interface est stabilisée depuis Linux 2.5.66.

VOIR AUSSI

epoll_ctl(2), epoll_create(2), epoll(4)

TRADUCTION

Christophe Blaess, 2003.