Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       sigqueue - 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   (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 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

       sigqueue()  and the underlying rt_sigqueueinfo()  system call first appeared in 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 │
       └───────────┴──────────────────────┴─────────┘

CONFORMITÉ

       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
       On  Linux, sigqueue()  is implemented using the rt_sigqueueinfo(2) system call. The system
       call differs in its third argument, which is the siginfo_t structure that will be supplied
       to  the  receiving  process's  signal  handler  or  returned  by  the  receiving process's
       sigtimedwait(2) call. Inside the glibc  sigqueue()   wrapper,  this  argument,  uinfo,  is
       initialized as follows:

           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)

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