Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

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

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

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   (consulter
   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 est défini pour indiquer
       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 non valable.

       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

       sigqueue() et le premier appel système sous-jacent rt_sigqueueinfo(2)  sont  apparus  dans
       Linux 2.2.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │sigqueue()                                              │ Sécurité des threads │ MT-Safe │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       POSIX.1-2001, POSIX.1-2008.

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.

   Différences entre bibliothèque C et noyau
       Sous  Linux, l'implémentation de sigqueue() utilise l'appel système rt_sigqueueinfo(2). Le
       troisième paramètre de l'appel  système  diffère,  puisqu'il  correspond  à  la  structure
       siginfo_t  qui  sera  fournie au gestionnaire de signal du processus recevant le signal ou
       qui sera renvoyée par l'appel sigtimedwait(2) du processus recevant  le  signal.  Dans  la
       fonction  d'enveloppe  sigqueue()  de la glibc, ce paramètre uinfo est initialisé de cette
       façon :

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

VOIR AUSSI

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

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