sigismemeber和sigdelset函数解析

来源:互联网 发布:php输出等腰三角形 编辑:程序博客网 时间:2024/04/30 14:52

头文件

#include<signal.h>

函数原型

int sigismember(const sigset_t *set,int signum);

相关函数

sigemptyset,sigfillset,sigaddset,sigdelset

说明

sigismember()用来测试参数signum 代表的信号是否已加入至参数set信号集里。如果信号集里已有该信号则返回1,否则返回0。如果有错误则返回-1。出错的情况及其错误代码见下:

EFAULT 参数set指针地址无法存取

EINVAL 参数signum 非合法的信号编号


5范例

#include<stdio.h>
#include<stdlib.h>
#include<signal.h>
int main(int argc, char* argv[])
{
sigset_t set;
sigemptyset(&set);
for(int i=0;i<36;i++)
{
sigaddset(&set,i);
}
sigdelset(&set,SIGHUP);
if(sigismember(&set, SIGHUP)){
printf("In it!\n");
}else{
printf("Not in it!\n");
}
return 0;  }


 

头文件

#include<signal.h>

函数原型

int sigdelset(sigset_t * set,int signum);

相关函数

sigemptyset,sigfillset,sigaddset,sigismember

说明

sigdelset()用来将参数signum代表的信号从参数set信号集里删除。函数执行成功则返回0,如果有错误则返回-1。

错误代码:

EFAULT 参数set指针地址无法存取

EINVAL 参数signum非合法的信号编号

范例

#include<stdio.h>

#include<stdlib.h>

#include<signal.h>

int main(int argc, char* argv[])

{

sigset_t set;

sigemptyset(&set);

for(i=0;i<36;i++)

{

sigaddset(&set,i);

}

sigdelset(&set,SIGHUP);

sigdelset(&set,SIGINT);

sigdelset(&set,SIGTERM);

sigdelset(&set,SIGQUIT);

sigdelset(&set,SIGBUS);

sigdelset(&set,SIGCHLD);

sigdelset(&set,SIGALRM);

sigdelset(&set,SIGVTALRM);

return 0;

}

0 0