功能描述:
检测或修改信号屏蔽字
用 法:
#include < signal.h >
int sigprocmask( int how, const sigset_t * set , sigset_t * oldset);
参 数:
how:用于指定信号修改的方式,可能选择有三种
SIG_BLOCK //加入信号到进程屏蔽。
SIG_UNBLOCK //从进程屏蔽里将信号 删除。
SIG_SETMASK //将set的值设定为 新的进程屏蔽。
set :为指向信号集的指针,在此专指新设的信号 集,如果仅想读取现在的屏蔽值,可将其置为NULL。
oldset:也是指向信号集的指针,在此存放原来的信号集。
返回说明:
成 功执行时,返回0。失败返回 - 1 ,errno被设为EINVAL。
举例:
编译、运行程序,我们 ctrl+c ,程序就退出了
我们修改代码如下:
编译、运行程序,我 们 ctrl+c ,程序没有退出。
分析:
我们在第二个列子中,把sigint信号给屏蔽了,所有当我ctrl+c的时候,程序是无法处理这个信号的,也就没有退出