Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       epoll_ctl - Interface de contrôle pour un descripteur epoll

SYNOPSIS

       #include <sys/epoll.h>

       int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);

DESCRIPTION

       Cet  appel  système  effectue  des  opérations  de  contrôle  sur  l'instance  epoll(7) référencée par le
       descripteur de fichier epfd. Il nécessite que l'opération op soit effectuée sur le descripteur de fichier
       cible fd.

       Les valeurs autorisées pour le paramètre op sont :

       EPOLL_CTL_ADD
              Enregistre le descripteur de fichier cible fd pour l'instance epoll indiquée par le descripteur de
              fichier 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 (désenregistre) le descripteur de fichier fd de l'instance epoll indiquée  par  epfd.  Le
              paramètre event est ignoré et peut être NULL (mais consultez la section BOGUES ci‐dessous).

       Le  paramètre 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énements 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 (depuis Linux 2.6.17)
              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
              Définir le comportement en détection de changement d'état sur le  descripteur.  Par  défaut  epoll
              fonctionne  en  détection de niveau. Consultez 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)
              Définir le comportement « coup unique » (Ndt : one‐shot) pour le descripteur de  fichier  associé.
              Cela  signifie qu'après qu'un événement a é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éarmer le descripteur de fichier
              avec le nouveau masque d'événement.

VALEUR RENVOYÉE

       Lorsqu'il réussit, l'appel epoll_ctl() renvoie zéro. Si une erreur se produit, epoll_ctl() renvoie -1  et
       errno contient le code approprié.

ERREURS

       EBADF  epfd ou fd n'est pas un descripteur de fichier valable.

       EEXIST op  est  EPOLL_CTL_ADD, mais le descripteur de fichier fd est déjà enregistrée dans cette instance
              epoll.

       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 enregistré dans cette instance epoll.

       ENOMEM Pas assez de mémoire dans le noyau pour traiter l'opération op demandée.

       ENOSPC La   limite   imposée   par  /proc/sys/fs/epoll/max_user_watches  a  été  rencontrée  en  essayant
              d'enregistrer (EPOLL_CTL_ADD) un nouveau descripteur de fichier sur une instance epoll.  Consultez
              epoll(7) pour plus de détails.

       EPERM  Le fichier cible fd n'est pas supporté par epoll.

VERSIONS

       epoll_ctl() a été ajouté au noyau Linux dans sa version 2.6.

CONFORMITÉ

       epoll_ctl() est spécifique à Linux. La prise en charge par la glibc a été ajoutée dans la version 2.3.2.

NOTES

       L'interface epoll supporte tous les descripteurs de fichier supportés par poll(2).

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 Linux 2.6.9, event peut être NULL  lors  d'une
       opération  EPOLL_CTL_DEL.  Les applications qui doivent être portables pour les noyaux antérieurs à 2.6.9
       devraient utiliser un pointeur différent de NULL dans event.

VOIR AUSSI

       epoll_create(2), epoll_wait(2), poll(2), epoll(7)

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
       instructions    pour    signaler    des    anomalies    peuvent     être     trouvées     à     l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe       Blaess       <http://www.blaess.fr/christophe/>      (1996-2003),      Alain      Portal
       <http://manpagesfr.free.fr/> (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de  traduction  de
       Debian (2006-2009).

       Veuillez  signaler  toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou 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> ».

Linux                                             15 avril 2012                                     EPOLL_CTL(2)