linux信号屏蔽:
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
/*定义信号集*/
sigset_t set;
/*初始化信号集*/
sigemptyset(&set);
/*向信号集中添加信号*/
sigaddset(&set, SIGCHLD);
sigaddset(&set, SIGALRM);
sigaddset(&set, SIGIO);
sigaddset(&set, SIGINT);
sigaddset(&set, SIGTSTP);
sigaddset(&set, SIGHUP);
sigaddset(&set, SIGWINCH);
sigaddset(&set, SIGTERM);
sigaddset(&set, SIGQUIT);
/*SIG_BLOCK为屏蔽信号集,0为成功,-1失败*/
if (sigprocmask(SIG_BLOCK, &set, NULL) == -1)
{
perror("sigprocmask error");
exit(-1);
}
/*清空信号集*/
sigemptyset(&set);
while (1)
{
printf("nihao\n");
sleep(2);
}
return 0;
}