dwww Home | Manual pages | Find package

rt_sigqueueinfo(2)            System Calls Manual           rt_sigqueueinfo(2)

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 sys-
       tè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 ob-
       tenir 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 pro-
       cessus UNIX traditionnel.) Le signal sera délivré  à  un  membre  arbi-
       traire  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 Li-
              nux 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 si-
                 gnal 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, typique-
              ment 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 ob-
       tenir 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é dans Linux 2.2. L'appel
       système rt_tgsigqueueinfo() a été ajouté dans Linux 2.6.31.

STANDARDS
       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 ; utili-
       sez 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 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>,  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⟩.

Pages du manuel de Linux 6.03   5 février 2023              rt_sigqueueinfo(2)

Generated by dwww version 1.15 on Sat Jun 29 01:49:43 CEST 2024.