Provided by: manpages-fr_4.15.0-9_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.13 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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.