zion - epoll_ctl
Nom
epoll_ctl - Interface de contrôle pour un descripteur epoll.
Résumé
#include <sys/epoll.h> int epoll_ctl(int epfd , int op , int fd , struct epoll_event * event )
Description
Controle le descripteur epoll epfd , en demandant que l'opération op soit réalisée sur le descripteur cible fd . La structure event décrit l'objet lié au descripteur de fichier fd . La struct epoll_event est définie ainsi : .nf typedef union epoll_data { void *ptr; int fd; __uint32_t u32; __uint64_t u64; } epoll_data_t; struct epoll_event { __uint32_t events; /* Evénement epoll */ epoll_data_t data; /* Variable utilisateur */ }; .fi Le membre events est un masque de bits composés à partir des événéments disponibles suivants :
EPOLLIN
Le descripteur associé est disponible pour un appel read (2). |
EPOLLOUT
Le descripteur associé est disponible pour un appel write (2). |
EPOLLPRI
Il y a des données urgentes disponibles pour un appel read (2). |
EPOLLERR
Une erreur s'est produite sur le descripteur associé. |
EPOLLHUP
Une deconnexion s'est produite sur le descripteur associé. |
EPOLLET
Fixe le comportement en détection de changement d'état sur le descripteur. Par défaut epoll fonctionne en détection de niveau. Voir epoll (4) pour plus de détails sur les comportements en détection de niveau et de changements d'état. |
L'interface epoll supporte tous les descripteurs de fichiers supportés par poll (2). Les valeurs valides pour le paramètre op sont : .SR
EPOLL_CTL_ADD
Ajouter le descripteur de fichier fd dans le descripteur epoll epfd et associe l'événement event avec le fichier représenté par fd . |
EPOLL_CTL_MOD
Change l'événement event associé au descripteur de fichier fd . |
EPOLL_CTL_DEL
Supprime le descripteur de fichier fd dans le descripteur epoll epfd . .SE |
Valeur renvoyée
Lorsqu'il réussit, l'appel epoll_ctl (2) renvoie zéro. Si une erreur se produit, epoll_ctl (2) renvoie -1 et errno contient le code approprié.
Erreurs
EBADF
Le descripteur de fichiers epfd n'est pas un descripteur valide. |
EPERM
Le fichier cible fd n'est pas supporté par epoll . |
EINVAL
Le descripteur de fichier epfd , n'est pas un descripteur epoll , ou l'opération demandée op n'est pas supportée par cette interface. |
ENOMEM
Pas assez de mémoire dans le noyau pour traiter l'opération op . |
Conformité
epoll_ctl (2) est une nouvelle API introduite dans Linux 2.5.44. Son interface est stabilisée depuis le 2.5.66.
Voir aussi
epoll_create (2), epoll_wait (2), epoll (4)
Traduction
Christophe Blaess, 2003.
Poster un commentaire