Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       sigqueue, rt_sigqueueinfo - Enregistrer un signal et des données pour un processus

SYNOPSIS

       #include <signal.h>

       int sigqueue(pid_t pid, int sig, const union sigval valeur);

   Exigences    de    macros    de   test   de   fonctionnalités   pour   la   glibc   (consultez
   feature_test_macros(7)) :

       sigqueue() : _POSIX_C_SOURCE >= 199309L

DESCRIPTION

       sigqueue() envoie le signal sig au processus indiqué par  pid.  Les  permissions  requises
       pour  l'émission  du signal sont les mêmes que pour kill(2). Comme avec kill(2), le signal
       nul (0) peut servir à vérifier si un processus existe avec un PID donné.

       L'argument valeur sert à indiquer une donnée  (soit  un  entier,  soit  un  pointeur)  qui
       accompagnera le signal et se présente avec le type suivant :

           union sigval {
               int   sival_int;
               void *sival_ptr;
           };

       Si  le  processus  récepteur  a  installé  un  gestionnaire  pour  le signal avec l'option
       SA_SIGINFO lors du sigaction(2), il pourra obtenir la donnée dans le champ si_value de  la
       structure  siginfo_t  passée en second argument au gestionnaire. De plus, le champ si_code
       de la structure contiendra SI_QUEUE.

VALEUR RENVOYÉE

       L'appel sigqueue() renvoie 0 s'il réussit, indiquant que le signal a bien été mis dans  la
       file du processus récepteur. Sinon il renvoie -1 et errno contient le code de l'erreur.

ERREURS

       EAGAIN La  limite  du  nombre  de signaux en file a été atteinte (consultez signal(7) pour
              plus d'informations).

       EINVAL sig est invalide.

       EPERM  Le processus n'a pas la permission d'envoyer un signal au processus visé. Pour  les
              permissions nécessaires, consultez kill(2).

       ESRCH  Il n'y a pas de processus correspondant au pid.

VERSIONS

       Cet appel système est apparu dans Linux 2.2.

CONFORMITÉ

       POSIX.1-2001.

NOTES

       Si  l'appel  consiste  à  envoyer  un signal au processus qui l'a invoqué, et si le signal
       n'est pas bloqué par le thread appelant, et si aucun  autre  thread  ne  peut  traiter  le
       signal  (soit  en  l'ayant  débloqué, ou en faisant une attente avec sigwait(3)), alors au
       moins quelques signaux seront délivrés  au  thread  appelant  avant  que  la  fonction  ne
       revienne.

       Sous  Linux,  l'appel  système  sous-jacent  est  en  fait appelé rt_sigqueueinfo() et son
       troisième paramètre diffère, puisqu'il  correspond  à  la  structure  siginfo_t  qui  sera
       fournie  au gestionnaire de signal du processus recevant le signal ou qui sera revoyée par
       l'appel sigtimedwait(2) du processus recevant le signal. Dans la fonction sigqueue() de la
       glibc, ce paramètre info est initialisé de cette façon :

           info.si_signo = sig;      /* paramètre fourni à sigqueue() */
           info.si_code = SI_QUEUE;
           info.si_pid = getpid();   /* identifiant du processus émetteur */
           info.si_uid = getuid();   /* UID réel de l'émetteur */
           info.si_value = val;      /* paramètre fourni à sigqueue() */

VOIR AUSSI

       kill(2), sigaction(2), signal(2), pthread_sigqueue(3), sigwait(3), signal(7)

COLOPHON

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

TRADUCTION

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

       Christophe   Blaess   <URL:http://www.blaess.fr/christophe/>   (1996-2003),  Alain  Portal
       <URL: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> ».