Contrôle 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 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; /* Evénement epoll */
epoll_data_t data; /* Variable utilisateur */
};
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).
-
- EPOLLRDHUP (depuis Linux 2.6.17)
-
Le pair de la socket stream a fermé la connexion,
ou a été mis hors service en cours d'écriture sur la connexion.
(Cet attribut est particulièrement utile pour écrire du code simple afin
de détecter la mise hors service du pair lors de l'utilisation de la
surveillance « Edge Triggered ».)
-
- EPOLLPRI
-
Il y a des données urgentes disponibles pour un appel
read(2).
-
- EPOLLERR
-
Une erreur s'est produite sur le descripteur associé.
epoll_wait(2)
attendra toujours cet événement ;
il n'est pas nécessaire de le mettre dans
events.
-
- EPOLLHUP
-
Une déconnexion s'est produite sur le descripteur associé.
-
- EPOLLET
-
Fixer le comportement en détection de changement
d'état sur le descripteur.
Par défaut
epoll
fonctionne en détection de niveau.
Voir
epoll(7)
pour plus de détails sur les comportements en détection de niveau
et de changements d'état.
-
- EPOLLONESHOT (depuis Linux 2.6.2)
-
Fixer le comportement coup unique (Ndt : one-shot) pour le descripteur
de fichier associé.
Cela signifie qu'après qu'un événement n'ait été retiré avec
epoll_wait(2),
le descripteur de fichier est désactivé de manière interne et aucun autre
événement ne sera rapporté par l'interface
epoll.
L'utilisateur doit appeler
epoll_ctl()
avec
EPOLL_CTL_MOD
pour réactiver le descripteur de fichier
avec le nouveau masque d'événement.
L'interface
epoll
supporte tous les descripteurs de fichiers supportés par
poll(2).
Les valeurs valides pour le paramètre
op
sont :
-
- 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.
L'événement
event
est ignoré et peut être NULL (mais voir la section BOGUES plus loin).