Provided by: manpages-fr-dev_4.23.1-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  ⟨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⟩.