pthread_kill 子例程
用途
将信号发送到指定线程。
库
线程库 (libpthreads.a)
语法
#include <signal.h>
int pthread_kill (thread, signal)
pthread_t thread;
int signal;描述
pthread_kill 子例程将信号 signal 发送到线程 thread。 它与线程一起使用,例如具有单线程进程的 kill 子例程。
如果接收线程已阻塞信号的传递,那么该信号在该线程上保持暂挂状态,直到该线程取消阻塞信号的传递或将与该信号相关联的操作设置为忽略该信号。
注: pthread.h 头文件必须是使用线程库的每个源文件的第一个包含文件。 否则,应使用 -D_THREAD_SAFE 编译标志,或使用 cc_r 编译器。 在这种情况下,会自动设置标志。
参数
| 项 | 描述 |
|---|---|
| 线程 | 指定信号的目标线程。 |
| 信号 (signal) | 指定要传递的信号。 如果信号值为 0 ,那么将执行错误检查,但不会传递信号。 |
返回值
成功完成后,该函数将返回值 0。 否则,该函数将返回错误号。 如果 pthread_kill 函数失败,那么不会发送任何信号。
错误代码
在下列情况下, pthread_kill 函数将失败:
| 项 | 描述 |
|---|---|
| ESRCH | 找不到与给定线程标识指定的线程相对应的线程。 |
| EINVAL | signal 参数的值是无效或不受支持的信号编号。 |
pthread_kill 函数不会返回错误代码 EINTR。