Provided by: manpages-dev_2.17-1_all bug

NAME

       tkill, tgkill - send a signal to a single process

SYNOPSIS

       #include <sys/types.h>
       #include <linux/unistd.h>
       #include <errno.h>

       _syscall2(int, tkill, int, tid, int, sig)

       int tkill(int tid, int sig);

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

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

DESCRIPTION

       The  tkill()  system  call  is  analogous  to  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  kill().   With  tkill(), however, one can address each process by
       its unique TID.

       The tgkill() call improves on tkill() 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,  tgkill()  degenerates  into
       tkill().

       These  are  the  raw  system call interfaces, meant for internal thread
       library use.

RETURN VALUE

       On success, zero is returned. On error, -1 is returned,  and  errno  is
       set appropriately.

ERRORS

       EINVAL An invalid TID or signal was specified.

       EPERM  Permission denied. For the required permissions, see kill(2).

       ESRCH  No  process  with  the specified thread ID (and thread group ID)
              exists.

CONFORMING TO

       tkill() and tgkill() are Linux specific  and  should  not  be  used  in
       programs  that are intended to be portable.  tkill() is supported since
       Linux 2.4.19 / 2.5.4.  tgkill() was added in Linux 2.5.75.

SEE ALSO

       gettid(2), kill(2)