词条 | sigprocmask() |
释义 | 头文件#include<signal.h> 函数原型int sigprocmask(int how, const sigset_t *set, sigset_t *oldset); 函数说明一个进程的信号屏蔽字规定了当前阻塞而不能递送给该进程的信号集。sigprocmask()可以用来检测或改变目前的信号屏蔽字,其操作依参数how来决定,如果参数oldset不是NULL指针,那么目前的信号屏蔽字会由此指针返回。每个进程都有一个用来描述哪些信号递送到进程时将被阻塞的信号集,该信号集中的所有信号在递送到进程后都将被阻塞。 参数how: SIG_BLOCK 该进程新的信号屏蔽字是其当前信号屏蔽字和set指向信号集的并集。set包含了我 SIG_UNBLOCK 该进程新的信号屏蔽字是其当前信号屏蔽字和set所指向信号集的交集。set包含了 SIG_SETMASK 该进程新的信号屏蔽是set指向的值 如果set是个空指针,则不改变该进程的信号屏蔽字,how的值也无意义。 返回值执行成功返回0,失败返回-1。 错误代码EFAULT 参数set,oldset指针地址无法存取 EINTR 此调用被中断 范例#include <stdio.h> #include <signal.h> main() { sigset_t *set; set=(sigset_t*)malloc(sizeof(set)); sigemptyset(set); sigaddset(set,SIGINT); sigprocmask(SIG_SETMASK,set,NULL); while(1); return 0; } |
随便看 |
|
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。