Provided by: manpages-fr_4.13-4_all bug

NOM

       sigevent - Structure de notification des routines asynchrones

SYNOPSIS

       #include <signal.h>

       union sigval {            /* Data passed with notification */
           int     sival_int;    /* Integer value */
           void   *sival_ptr;    /* Pointer value */
       };

       struct sigevent {
           int    sigev_notify;  /* Notification method */
           int    sigev_signo;   /* Notification signal */
           union sigval sigev_value;
                                 /* Data passed with notification */
           void (*sigev_notify_function) (union sigval);
                                 /* Function used for thread
                                    notification (SIGEV_THREAD) */
           void  *sigev_notify_attributes;
                                 /* Attributes for notification thread
                                    (SIGEV_THREAD) */
           pid_t  sigev_notify_thread_id;
                                 /* ID of thread to signal
                                    (SIGEV_THREAD_ID); Linux-specific */
       };

DESCRIPTION

       La  structure  de  sigevent est utilisée par différentes API pour décrire la façon dont un processus sera
       averti d'un évènement (par exemple la fin d'une requête asynchrone, l'expiration d'une  temporisation  ou
       l'arrivée d'un message).

       La  définition  du  SYNOPSIS  est  approximative :  certains champs de la structure sigevent peuvent être
       définis comme faisant partie d'une union. Les programmes ne devraient utiliser ces champs qu'en  fonction
       de la valeur indiquée dans sigev_notify.

       Le  champ sigev_notify indique comment les notifications seront effectuées. Ce champ peut prendre une des
       valeurs suivantes :

       SIGEV_NONE
              Une notification « vide » : ne fait rien quand l'évènement se produit.

       SIGEV_SIGNAL
              Notifie le processus en envoyant le signal indiqué en sigev_signo.

              Si le signal est intercepté avec un gestionnaire de signal qui  a  été  enregistré  avec  l'option
              SA_SIGINFO  de  sigaction(2), les champs suivants sont définis dans la structure siginfo_t qui est
              transmise en tant que deuxième argument au gestionnaire :

              si_code   La valeur de ce champ dépend de l'API qui transmet la notification.

              si_signo  Le numéro du signal est attribué à ce  champ  (par  exemple  la  même  valeur  que  dans
                        sigev_signo).

              si_value  La valeur indiquée dans sigev_value est attribuée à ce champ.

              En fonction de l'API, d'autres champs peuvent être définis dans la structure siginfo_t.

              Les mêmes renseignements sont aussi disponibles si le signal permet d'utiliser sigwaitinfo(2).

       SIGEV_THREAD
              Notifie le processus par l'appel de sigev_notify_function « comme s'il » s'agissait de la fonction
              de démarrage d'un nouveau thread (il y a plusieurs possibilités d'implémentation, dont la création
              d'un  nouveau thread pour chaque notification de minuterie, ou la création d'un unique thread pour
              la réception de toutes les notifications). La fonction est appelée avec sigev_value  comme  unique
              paramètre.  Si  sigev_notify_attributes  n'est  pas  NULL,  il  doit  pointer  vers  une structure
              pthread_attr_t qui définie les paramètres pour le nouveau thread (voir pthread_attr_init(3)).

       SIGEV_THREAD_ID (spécifique à Linux)
              Seulement utilisée par les temporisations POSIX pour le moment, consultez timer_create(2).

VOIR AUSSI

       timer_create(2), aio_fsync(3), aio_read(3), aio_write(3), getaddrinfo_a(3), lio_listio(3),  mq_notify(3),
       aio(7), pthreads(7)

COLOPHON

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

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal  <aportal@univ-montp2.fr>,  Jean-Philippe  Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,    Denis    Barbier    <barbier@debian.org>,    David     Prévot
       <david@tilapin.org>,    Cédric    Boutillier    <cedric.boutillier@gmail.com>    et   Frédéric   Hantrais
       <fhantrais@gmail.com>

       Cette traduction est une documentation libre ; veuillez vous  reporter  à  la  GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous  découvrez  un  bogue  dans la traduction de cette page de manuel, veuillez envoyer un message à
       debian-l10n-french@lists.debian.org.

GNU                                              1 novembre 2020                                     SIGEVENT(7)