tkill(2) - Linux 手册页
名称
tkill, tgkill - 向线程发送信号概要
int tkill(int tid, int sig); int tgkill(int tgid, int tid, int sig);注意:这些系统调用没有 glibc 封装;请参阅 NOTES。
描述
tkill() 是 tgkill() 的过时前身。它只允许指定目标线程 ID,如果某个线程终止且其线程 ID 被回收,这可能会导致错误的线程被发送信号。请避免使用此系统调用。
如果 tgid 指定为 -1,则 tgkill() 等同于 tkill()。
这些是原始系统调用接口,旨在供线程库内部使用。
返回值
成功时返回零。出错时返回 -1,并相应地设置 errno。错误
- EINVAL
- 指定了无效的线程 ID、线程组 ID 或信号。
- EPERM
- 权限被拒绝。有关所需权限,请参见 kill(2)。
- ESRCH
- 不存在具有指定线程 ID(和线程组 ID)的进程。
版本
tkill() 自 Linux 2.4.19 / 2.5.4 起受支持。tgkill() 于 Linux 2.5.75 中添加。符合
tkill() 和 tgkill() 是 Linux 特有的,不应在旨在可移植的程序中使用。说明
有关线程组的解释,请参见 clone(2) 中对 CLONE_THREAD 的描述。Glibc 不为这些系统调用提供封装器;请使用 syscall(2) 调用它们。