Linux系统之打印未决信号集
按键和CTRL+c 产生未决信号,
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
int main()
{
sigset_t pend,sigproc;
//设置阻塞辛亥,等待按键产生信号
sigemptyset(&sigproc);//先清空
sigaddset(&sigproc,SIGINT);//ctrl+c ctrl+\
sigaddset(&sigproc,SIGQUIT);
//设置阻塞信号集
sigprocmask(SIG_BLOCK,&sigproc,NULL);
//循环取未决信号集,打印
while(1)
{
sigpending(&pend);
int i=0;
for(i=1;i<32;i++)
{
if(sigismember(&pend,i)==1)
{
printf("1");
}
else
{
printf("0");
}
printf("\n");
}
}
return 0;
sleep(1);
}
输出结果
如果在 sigaddset(&sigproc,SIGQUIT); 后面加上sigaddset(&sigproc,SIGKILL);命令行调用kill -9 进程名
结果如图所示