#include
#include
#include
#include
#include
int main(void)
{
sigset_t set,pendset;
struct sigaction action;
sigemptyset(&set); 清空信号集先
sigaddset(&set,SIGTERM); 加入SIGTERM呢个信号
sigprocmask(SIG_BLOCK,&set,NULL); 将距设为阻塞
kill(getpid(),SIGTERM); 因为阻塞所以就算用kill发送信号都系无反应架啦
sigpending(&pendset); 查下有咩阻塞信号,装入&pendset里面
if(sigismember(&pendset,SIGTERM)) 好啦好啦.看下系米有呢个信号希里面
{
printf("yes , the SIGTERM is here\n");
sigemptyset(&action.sa_mask); 清空阻塞信号集
action.sa_handler=SIG_IGN; 信号涵数处理为ignore(忽略啊哈哈)
sigaction(SIGTERM,&action,NULL); 启动同signal功能类是的信号涵数
}
sigprocmask(SIG_UNBLOCK,&set,NULL); 好了,解除之前的信号阻塞
exit(EXIT_SUCCESS);
}
阅读(1517) | 评论(0) | 转发(0) |