Provided by: manpages-fr-dev_4.26.0-1_all bug

NOM

       rt_sigqueueinfo,  rt_tgsigqueueinfo  –  Mettre  un  signal  et  des  données  dans la file d'attente d'un
       processus

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <linux/signal.h>     /* Définition des constantes SI_* */
       #include <sys/syscall.h>      /* Définition des constantes SYS_* */
       #include <unistd.h>

       int syscall(SYS_rt_sigqueueinfo, pid_t tgid,
                   int sig, siginfo_t *info);
       int syscall(SYS_rt_tgsigqueueinfo, pid_t tgid, pid_t tid,
                   int sig, siginfo_t *info);

       Remarque : il n'existe pas de fonctions glibc autour de ces appels système ; consultez NOTES.

DESCRIPTION

       Les appels système rt_sigqueueinfo() et rt_tgsigqueueinfo() sont les interfaces de bas  niveau  utilisées
       pour  envoyer  un signal accompagné de données à un processus ou à un thread. Le récepteur du signal peut
       obtenir les données associées en établissant un gestionnaire de signal à l'aide de l'attribut  SA_SIGINFO
       de sigaction(2).

       Ces  appels  système  ne  sont  pas  destinés  à être utilisés directement par une application ; ils sont
       fournis pour permettre l'implémentation de sigqueue(3) et pthread_sigqueue(3).

       L'appel système rt_sigqueueinfo() envoie le signal sig au groupe de threads dont l'identifiant est  tgid.
       (Le  terme  «  groupe  de  threads  »  est synonyme de « processus » et tid correspond à l'identifiant de
       processus UNIX traditionnel.) Le signal sera délivré à un membre  arbitraire  de  ce  groupe  de  threads
       (c'est-à-dire un des threads qui n'est pas en train de bloquer le signal).

       Le  paramètre  info  spécifie les données devant accompagner le signal. Ce paramètre est un pointeur vers
       une structure de type siginfo_t  décrite  dans  sigaction(2)  (et  définie  en  incluant  <sigaction.h>).
       L'appelant doit positionner les champs suivants dans cette structure :

       si_code
              Cela  doit  être un des codes SI_* du fichier source du noyau Linux include/asm-generic/siginfo.h.
              Si le signal doit être envoyé à un autre  processus  que  l'appelant  lui-même,  les  restrictions
              suivantes s'appliquent :

              -  Le  code  ne  peut  pas  être une valeur supérieure ou égale à zéro. En particulier, il ne peut
                 s'agir de SI_USER qui est utilisé par le noyau pour indiquer un signal envoyé par  kill(2),  ni
                 de SI_KERNEL qui est utilisé pour indiquer un signal généré par le noyau.

              -  Le  code  ne  peut  pas  (depuis  Linux 2.6.39) être SI_TKILL qui est utilisé par le noyau pour
                 indiquer le signal envoyé en utilisant tgkill(2).

       si_pid Cela doit être égal à l'identifiant d'un processus, typiquement celui du processus émetteur.

       si_uid Cela doit être égal à l'identifiant d'un utilisateur, typiquement l'identifiant  utilisateur  réel
              de l'émetteur.

       si_value
              Ce  champ  contient  les données utilisateur pour accompagner le signal. Pour plus d'informations,
              consultez la description du dernier argument (union_sigval) de sigqueue(3).

       De manière interne, le noyau positionne le champ si_signo à la valeur indiquée dans sig, de sorte que  le
       récepteur du signal puisse aussi obtenir le numéro du signal à l’aide de ce champ.

       L'appel  système  rt_tgsigqueueinfo()  fonctionne comme rt_sigqueueinfo(), mais n'envoie le signal et les
       données qu'à l'unique thread indiqué par la combinaison de tgid, un identifiant de groupe de threads,  et
       de tid, un thread dans ce groupe.

VALEUR RENVOYÉE

       En  cas du succès, ces appels système renvoient 0. Dans le cas contraire, ils renvoient -1 et remplissent
       errno avec le code d'erreur.

ERREURS

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

       EINVAL sig, tgid ou tid n'est pas valable.

       EPERM  L'appelant n'a pas le droit d'envoyer un signal à la cible. Pour les droits nécessaires, consultez
              kill(2).

       EPERM  tgid indique un autre processus que l'appelant et info->si_code n'est pas valable.

       ESRCH  rt_sigqueueinfo() : aucun groupe de threads correspondant à tgid n'a été trouvé.

       rt_tgsigqueinfo() : aucun thread correspondant à tgid et tid n'a été trouvé.

STANDARDS

       Linux.

HISTORIQUE

       rt_sigqueueinfo()
              Linux 2.2.

       rt_tgsigqueueinfo()
              Linux 2.6.31

NOTES

       Comme  ces  appels  système  ne sont pas destinés à être utilisés par une application, il n'existe aucune
       fonction d'encapsulation glibc ; utilisez syscall(2) dans le  cas  peu  probable  où  vous  voudriez  les
       appeler directement.

       Comme  pour  kill(2),  le  signal  nul  (0)  peut être utilisé pour vérifier si le processus ou le thread
       indiqué existe.

VOIR AUSSI

       kill(2), pidfd_send_signal(2), sigaction(2), sigprocmask(2), tgkill(2), pthread_sigqueue(3), sigqueue(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>,    Frédéric    Hantrais
       <fhantrais@gmail.com> et Jean-Philippe MENGUAL <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous  reporter  à  la  GNU General Public License
       version 3 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.9.1                     2 mai 2024                                 rt_sigqueueinfo(2)