dwww Home | Manual pages | Find package

sigqueue(3)                Library Functions Manual                sigqueue(3)

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 value);

   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  per-
       missions  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  sui-
       vant :

           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 se-
       cond argument au gestionnaire. De plus, le champ si_code de  la  struc-
       ture 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  pro-
              cessus   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(2)   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 │
       └─────────────────────────────────────┴──────────────────────┴─────────┘

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
       On Linux, sigqueue()  is implemented using the rt_sigqueueinfo(2)  sys-
       tem  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_sig-
       queue(3), sigwait(3), signal(7)

TRADUCTION
       La traduction française de cette page de manuel a été créée par  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.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.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>,  David  Prévot  <david@tilapin.org>,  Cédric Boutillier <ce-
       dric.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⟩.

Pages du manuel de Linux 6.03  15 décembre 2022                    sigqueue(3)

Generated by dwww version 1.15 on Sat Jun 29 01:32:47 CEST 2024.