Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

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

SYNOPSIS

       #include <linux/signal.h>     /* Definition of SI_* constants */
       #include <sys/syscall.h>      /* Definition of SYS_* constants */
       #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  d’attente  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é.

VERSIONS

       L'appel  système  rt_sigqueueinfo()  a  été  ajouté  à  Linux dans la version 2.2. L'appel
       système rt_tgsigqueueinfo() a été ajouté à Linux dans la version 2.6.31.

CONFORMITÉ

       Ces appels système sont spécifiques à Linux.

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)

COLOPHON

       Cette page fait partie de la publication 5.13 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>, 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⟩.