summaryrefslogtreecommitdiffstats
path: root/man2/tkill.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/tkill.2')
-rw-r--r--man2/tkill.281
1 files changed, 81 insertions, 0 deletions
diff --git a/man2/tkill.2 b/man2/tkill.2
new file mode 100644
index 000000000..774c0bb66
--- /dev/null
+++ b/man2/tkill.2
@@ -0,0 +1,81 @@
+.\" Hey Emacs! This file is -*- nroff -*- source.
+.\"
+.\" Copyright 2003 Abhijit Menon-Sen <ams@wiw.org>
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" 2004-05-31, added tgkill, ahu, aeb
+.\"
+.TH TKILL 2 "2004-05-31" "Linux 2.6.6" "Linux Programmer's Manual"
+.SH NAME
+tkill, tgkill \- send a signal to a single process
+.SH SYNOPSIS
+.nf
+.B #include <sys/types.h>
+.br
+.B #include <linux/unistd.h>
+.sp
+.B "_syscall2(int, tkill, int, tid, int, sig)"
+.sp
+.B int tkill(int tid, int sig);
+.sp
+.B "_syscall3(int, tkill, int, tgid, int, tid, int, sig)"
+.sp
+.B int tgkill(int tgid, int tid, int sig);
+.fi
+.SH DESCRIPTION
+The \fBtkill\fP system call is analogous to
+.BR kill (2),
+except when the specified process is part of a thread group
+(created by specifying the CLONE_THREAD flag in the call to clone).
+Since all the processes in a thread group have the same PID,
+they cannot be individually signalled with \fBkill\fP.
+With \fBtkill\fP, however, one can address each process
+by its unique TID.
+.PP
+The \fBtgkill\fP call improves on \fBtkill\fP by allowing the caller to
+specify the thread group ID of the thread to be signalled, protecting
+against TID reuse. If the tgid is specified as \-1, \fBtgkill\fP degenerates
+into \fBtkill\fP.
+.PP
+These are the raw system call interfaces, meant for internal
+thread library use.
+.SH "RETURN VALUE"
+On success, zero is returned. On error, \-1 is returned, and \fIerrno\fP
+is set appropriately.
+.SH ERRORS
+.TP
+.B EINVAL
+An invalid TID or signal was specified.
+.TP
+.B EPERM
+Permission denied. For the required permissions, see
+.BR kill (2).
+.TP
+.B ESRCH
+No process with the specified thread ID (and thread group ID) exists.
+.SH "CONFORMING TO"
+\fBtkill\fP and \fBtgkill\fP are Linux specific and should not be used
+in programs that are intended to be portable.
+\fBtkill\fP is supported since Linux 2.4.19 / 2.5.4.
+\fBtgkill\fP was added in Linux 2.5.75.
+.SH "SEE ALSO"
+.BR gettid (2),
+.BR kill (2)