#include<unistd.h>
#include<stdio.h>
#include<signal.h>
#include<stdlib.h>
void handler(int sig);
int main()
{
sigset_t sigignore;
sigemptyset(&sigignore);
sigaddset(&sigignore,SIGINT);
struct sigaction act;
act.sa_handler=handler;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
sigaction(SIGINT,&act,0);
sigaction(SIGQUIT,&act,0);
printf("Please input a signal\n");
pause();
pause();
printf("Please input a signal\n");
sigprocmask(SIG_SETMASK,&sigignore,0);
pause();
sigdelset(&sigignore,SIGINT);
sigprocmask(SIG_SETMASK,&sigignore,0);
printf("ignaorance has been canceled\n");
printf("Please input a signal\n");
pause();
}
void handler(int sig)
{
if(sig == SIGINT){
printf("I have get SIGINT\n");
}
else if(sig == SIGQUIT){
printf("I have get SIGQUIT\n");
}
}