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> ».