NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |ATTRIBUTES |VERSIONS |STANDARDS |HISTORY |NOTES |SEE ALSO |COLOPHON | |
pthread_kill(3) Library Functions Manualpthread_kill(3)pthread_kill - send a signal to a thread
POSIX threads library (libpthread,-lpthread)
#include <signal.h>int pthread_kill(pthread_tthread, intsig); Feature Test Macro Requirements for glibc (seefeature_test_macros(7)):pthread_kill(): _POSIX_C_SOURCE >= 199506L || _XOPEN_SOURCE >= 500
Thepthread_kill() function sends the signalsig tothread, a thread in the same process as the caller. The signal is asynchronously directed tothread. Ifsig is 0, then no signal is sent, but error checking is still performed.
On success,pthread_kill() returns 0; on error, it returns an error number, and no signal is sent.
EINVALAn invalid signal was specified.
For an explanation of the terms used in this section, seeattributes(7). ┌──────────────────────────────────────┬───────────────┬─────────┐ │Interface│Attribute│Value│ ├──────────────────────────────────────┼───────────────┼─────────┤ │pthread_kill() │ Thread safety │ MT-Safe │ └──────────────────────────────────────┴───────────────┴─────────┘
The glibc implementation ofpthread_kill() gives an error (EINVAL) on attempts to send either of the real-time signals used internally by the NPTL threading implementation. Seenptl(7) for details. POSIX.1-2008 recommends that if an implementation detects the use of a thread ID after the end of its lifetime,pthread_kill() should return the errorESRCH. The glibc implementation returns this error in the cases where an invalid thread ID can be detected. But note also that POSIX says that an attempt to use a thread ID whose lifetime has ended produces undefined behavior, and an attempt to use an invalid thread ID in a call topthread_kill() can, for example, cause a segmentation fault.
POSIX.1-2008.
POSIX.1-2001.
Signal dispositions are process-wide: if a signal handler is installed, the handler will be invoked in the threadthread, but if the disposition of the signal is "stop", "continue", or "terminate", this action will affect the whole process.
kill(2),sigaction(2),sigpending(2),pthread_self(3),pthread_sigmask(3),raise(3),pthreads(7),signal(7)
This page is part of theman-pages (Linux kernel and C library user-space interface documentation) project. Information about the project can be found at ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report for this manual page, see ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. This page was obtained from the tarball man-pages-6.15.tar.gz fetched from ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on 2025-08-11. If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up- to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgLinux man-pages 6.15 2025-05-17pthread_kill(3)Pages that refer to this page:pthread_sigmask(3), raise(3), nptl(7), pthreads(7), signal(7), signal-safety(7)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |