tkill, tgkill - Envoyer un signal à un thread
Bibliothèque C standard (
libc,
-lc)
#include <signal.h> /* Définition des constantes SIG* */
#include <sys/syscall.h> /* Définition des constantes SYS_* */
#include <unistd.h>
[[obsolète]] int syscall(SYS_tkill, pid_t tid, int sig);
#include <signal.h>
int tgkill(pid_t tgid, pid_t tid, int sig);
Remarque : La glibc ne fournit pas d'enveloppe pour
tkill() ; appelez-le avec
syscall(2).
tgkill() envoie le signal
sig au thread qui a pour identifiant
tid dans le groupe de thread
tgid. (Contrairement à
kill(2) qui ne peut être utilisé que pour envoyer un
signal à tout un processus (c'est-à-dire un groupe de
threads) ; le signal étant envoyé à n'importe quel
thread du processus)
tkill() est l'ancienne version de
tgkill() et est obsolète.
Il ne permet que de préciser l'identifiant du thread cible, ce qui peut
résulter en un envoi du signal au mauvais thread si le thread se
termine et que son identifiant est réutilisé. Évitez
d'utiliser cet appel système.
Ce sont des appels système bruts, conçus pour une utilisation dans
la bibliothèque des threads.
En cas de succès, zéro est renvoyé. En cas d'erreur,
-1 est renvoyé et
errno est définie pour
préciser l'erreur.
- EAGAIN
- La limite de ressources RLIMIT_SIGPENDING a
été atteinte et sig est un signal en temps
réel.
- EAGAIN
- La mémoire disponible du noyau est insuffisante et
sig est un signal en temps réel.
- EINVAL
- L'identifiant de thread ou l'identifiant de groupe de
threads ou le numéro de signal n'est pas valable.
- EPERM
- Permission refusée. Pour les permissions
nécessaires, consultez kill(2).
- ESRCH
- Il n'y a pas de processus avec le TID (et le TGID)
indiqué.
tkill() est pris en charge depuis Linux 2.4.19/2.5.4.
tgkill() a été ajouté dans Linux 2.5.75.
La prise en charge de la bibliothèque pour
tgkill() a
été ajoutée dans la glibc 2.30.
tkill() et
tgkill() sont spécifiques à Linux et ne
doivent pas être utilisés dans un programme conçu pour
être portable.
Consultez la description de
CLONE_THREAD dans
clone(2) pour une
explication sur les groupes de threads.
Avant la glibc 2.30, il n'y avait pas non plus de fonction d'enveloppe
pour
tgkill().
clone(2),
gettid(2),
kill(2),
rt_sigqueueinfo(2)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Cédric Boutillier <
[email protected]>,
Frédéric Hantrais <
[email protected]> et Jean-Pierre
Giraud <
[email protected]>
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 à
[email protected]