#include <stdio.h>
#include <signal.h>
#include <unistd.h>
void signalHangle(int signo){
printf("signo = %d\n", signo);
switch (signo) {
case SIGSTOP:
printf("STOP!\n");
break;
case SIGTSTP:
printf("TSTP!\n");
raise(SIGSTOP);
//raise(SIGCONT);
break;
case SIGCONT:
printf("SIGCONT!\n");
break;
case SIGKILL:
printf("SIGKILL!\n");
break;
case SIGINT:
printf("SIGKILL!\n");
break;
case SIGTERM:
printf("SIGTERM!\n");
break;
default:
break;
}
}
int main(int argc, char** argv){
signal(SIGTSTP, signalHangle);
//signal(SIGSTOP, signalHangle);
//signal(SIGCONT, signalHangle);
signal(SIGALRM, signalHangle);
signal(SIGKILL, signalHangle);
signal(SIGINT, signalHangle);
signal(SIGTERM, signalHangle);
alarm(1);
while (1) {
pause();
//sleep(1);
printf("Hello signal handler! pid = %d\n", getpid());
//raise(SIGTSTP);
//alarm(1);
//sleep(3);
//raise(SIGALRM);
}
return 0;
}