pthread_sigqueue函数用法详解
pthread_sigqueue函数简介
- 头文件包含
#include <signal.h>
#include <pthread.h>
- 函数定义
int pthread_sigqueue(pthread_t thread , int sig ,
const union sigval value );
- 编译链接选项
-pthread
pthread_sigqueue函数常见使用错误
- 链接错误
undefined reference to `pthread_sigqueue'
解决办法:添加链接选项
-pthread
- 编译错误
warning: implicit declaration of function ‘pthread_sigqueue’ [-Wimplicit-function-declaration]
解决办法:包含头文件
#include <signal.h>
#include <pthread.h>
pthread_sigqueue函数详细描述
pthread_sigqueue ()函数执行与sigqueue (3)类似的任务,但它不是向进程发送信号,而是向与调用线程相同的进程中的线程发送信号。
thread参数是与调用方处于同一进程中的线程的ID。sig参数指定要发送的信号。value参数指定伴随信号的数据;详见sigqueue (3)。
pthread_sigqueue函数返回值
成功时,pthread_sigqueue ()返回0;出错时,它返回一个错误号。
pthread_sigqueue函数错误码
- EAGAIN 可以排队的信号的限制已经达到。(有关更多信息,请参见signal (7)。)
- EINVAL sig无效。
- 此系统不支持 ENOSYS pthread_sigqueue ()。
- ESRCH thread无效。
pthread_sigqueue函数其他说明
pthread_sigqueue ()的glibc实现在试图发送NPTL线程实现内部使用的任何一个实时信号时都会给出错误( EINVAL )。详见nptl (7)。
评论区