Manpages

NOM

tkill, tgkill - Envoyer un signal à un thread

SYNOPSIS

int tkill(int tid, int sig);

int tgkill(int tgid, int tid, int sig);

Note: There is no glibc wrapper for tkill(); see NOTES.

DESCRIPTION

tgkill() envoie le signal sig au thread qui a pour identifiant tid dans le groupe tgid. (Contrairement à kill(2) qui ne peut être utilisé que pour envoyer un signal à un processus (c’est-à-dire un groupe de thread) ; 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, 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.

VALEUR RENVOYÉE

En cas de succès, zéro est renvoyé. En cas d’erreur, -1 est renvoyé et errno reçoit une valeur adéquate.

ERREURS

EAGAIN

The RLIMIT_SIGPENDING resource limit was reached and sig is a real-time signal.

EAGAIN

Insufficient kernel memory was available and sig is a real-time signal.

EINVAL

L’identifiant de thread ou l’identifiant de groupe de thread 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 TGID) indiqué.

VERSIONS

tkill() est supporté depuis Linux 2.4.19/2.5.4. tgkill() a été ajouté dans Linux 2.5.75.

Library support for tgkill() was added to glibc in version 2.30.

CONFORMITÉ

tkill() et tgkill() sont spécifiques à Linux et ne doivent pas être utilisés dans un programme conçu pour être portable.

NOTES

Consultez la description de CLONE_THREAD dans clone(2) pour une explication sur les groupes de threads.

Glibc does not provide a wrapper for tkill(); call it using syscall(2). Before glibc 2.30, there was also no wrapper function for tgkill().

VOIR AUSSI

clone(2), gettid(2), kill(2), rt_sigqueueinfo(2)

COLOPHON

Cette page fait partie de la publication 5.07 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 [AT] laposte.net>, Thierry Vignaud <tvignaud [AT] mandriva.com>, François Micaux, Alain Portal <aportal [AT] univ-montp2.fr>, Jean-Philippe Guérard <fevrier [AT] tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon [AT] wanadoo.fr>, Julien Cristau <jcristau [AT] debian.org>, Thomas Huriaux <thomas.huriaux [AT] gmail.com>, Nicolas François <nicolas.francois [AT] centraliens.net>, Florentin Duneau <fduneau [AT] gmail.com>, Simon Paillard <simon.paillard [AT] resel.fr>, Denis Barbier <barbier [AT] debian.org>, David Prévot <david [AT] tilapin.org>, Cédric Boutillier <cedric.boutillier [AT] gmail.com> et Frédéric Hantrais <fhantrais [AT] gmail.com>

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 [AT] lists.org>.