C语言中查询进程信号是否被遮罩或搁置的简单方法
C语言sigprocmask()函数:查询或设置信号遮罩
头文件:
#include<signal.h>
定义函数:
intsigprocmask(inthow,constsigset_t*set,sigset_t*oldset);
函数说明:sigprocmask()可以用来改变目前的信号遮罩,其操作依参数how来决定:
1、SIG_BLOCK新的信号遮罩由目前的信号遮罩和参数set指定的信号遮罩作联集
2、SIG_UNBLOCK将目前的信号遮罩删除掉参数set指定的信号遮罩
3、SIG_SETMASK将目前的信号遮罩设成参数set指定的信号遮罩.如果参数oldset不是NULL指针,那么目前的信号遮罩会由此指针返回.
返回值:执行成功则返回0,如果有错误则返回-1.
错误代码:
1、EFAULT参数set,oldset指针地址无法存取.
2、EINTR此调用被中断。
C语言sigpending()函数:查询被搁置的信号
头文件:
#include<signal.h>
定义函数:
intsigpending(sigset_t*set);
函数说明:sigpending()会将被搁置的信号集合由参数set指针返回.返回值执行成功则返回0,如果有错误则返回-1.
错误代码:
1、EFAULT参数set指针地址无法存取
2、EINTR此调用被中断.