Rechercher une page de manuel
epoll_ctl
Langue: fr
Version: 23 octobre 2002 (ubuntu - 16/08/07)
Section: 2 (Appels système)
NOM
epoll_ctl - Interface de contrôle pour un descripteur epollSYNOPSIS
#include <sys/epoll.h>int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
DESCRIPTION
Contrôle le descripteur epoll epfd, en demandant que l'opération op soit réalisée sur le descripteur de fichier 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; /* Événement epoll */
epoll_data_t data; /* Variable utilisateur */
};
Le membre events est un masque de bits composé à partir des événements 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
- Le correspondant sur une socket en mode flux a fermé la connexion, ou bien a terminé la partie écriture de la connexion. (Cet attribut est particulièrement utile pour écrire du code simple permettant de détecter la fermeture de la connexion par le correspondant en détection de changement d'état.)
- EPOLLPRI
- Il y a des données urgentes disponibles pour un appel read(2).
- EPOLLERR
- Une erreur s'est produite sur le descripteur de fichier associé. epoll_wait(2) attend toujours cet événement, il n'est pas nécessaire de l'indiquer dans events.
- EPOLLHUP
- Une déconnexion s'est produite sur le descripteur associé. epoll_wait(2) attend toujours cet événement, il n'est pas nécessaire de l'indiquer dans events.
- 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 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(2) 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 du descripteur epoll epfd. Le paramètre event est ignoré et peut être NULL (mais voir la section BOGUES ci-dessous).
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
- epfd ou fd n'est pas un descripteur de fichier valide.
- EEXIST
- op est EPOLL_CTL_ADD, mais le descripteur de fichier fd est déjà dans epfd.
- EINVAL
- Le descripteur de fichier epfd, n'est pas un descripteur epoll, ou fd et epfd sont identiques, ou l'opération demandée op n'est pas supportée par cette interface.
- ENOENT
- op est EPOLL_CTL_MOD ou EPOLL_CTL_DEL, et fd n'est pas dans epfd.
- ENOMEM
- Pas assez de mémoire dans le noyau pour traiter l'opération op demandée.
- EPERM
- Le fichier cible fd n'est pas supporté par epoll.
CONFORMITÉ
epoll_ctl(2) est une nouvelle API introduite dans Linux 2.5.44. Son interface est stabilisée depuis le 2.5.66.BOGUES
Dans les versions du noyau antérieures à 2.6.9, l'opération EPOLL_CTL_DEL nécessitait un pointeur non NULL dans event, alors que ce paramètre est ignoré. Depuis 2.6.9, event peut être NULL lors d'une opération EPOLL_CTL_DEL.VOIR AUSSI
epoll_create(2), poll(2), epoll_wait(2), epoll(7)TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006.La traduction de cette page de manuel est basée sur les traductions disponibles sur http://manpagesfr.free.fr/, mais est gérée par l'équipe francophone de traduction de Debian au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».
quand il ne reste rien à enlever.
-+- Antoine de Saint-Exupéry (1900-1944) -+-
Contenus ©2006-2008 Benjamin Poulain
Design ©2006-2008 Maxime Vantorre