pthread_kill函数用法详解
pthread_kill函数简介
- 头文件包含
#include <signal.h>
- 函数定义
int pthread_kill(pthread_t thread , int sig );
- 编译链接选项
-pthread
pthread_kill函数常见使用错误
- 链接错误
undefined reference to `pthread_kill'
解决办法:添加链接选项
-pthread
- 编译错误
warning: implicit declaration of function ‘pthread_kill’ [-Wimplicit-function-declaration]
解决办法:包含头文件
#include <signal.h>
pthread_kill函数详细描述
pthread_kill ()函数将信号sig发送到thread ,它是与调用者相同进程中的一个线程。信号异步地定向到thread
如果sig为0,则不发送信号,但仍执行错误检查。
pthread_kill函数返回值
成功时,pthread_kill ()返回0;出错时,它返回一个错误号,并且不发送任何信号。
pthread_kill函数错误码
- EINVAL 指定了无效信号。
pthread_kill函数其他说明
信号处理是进程范围的:如果安装了信号处理程序,则该处理程序将在线程thread 中调用,但如果信号处理是“停止”、“继续”或“终止”,则该操作将影响整个进程。
pthread_kill ()的glibc实现在试图发送NPTL线程实现内部使用的任何一个实时信号时都会给出错误( EINVAL )。详见nptl (7)。
POSIX.1-2008建议,如果实现在其生存期结束后检测到线程ID的使用,pthread_kill ()应返回错误ESRCH 。在检测到无效线程ID的情况下,glibc实现返回此错误。但是还要注意,POSIX指出,试图使用生存期已经结束的线程ID会产生未定义的行为,例如,试图在对pthread_kill ()的调用中使用无效的线程ID会导致分段错误。
评论区