#include #include #include #include int etat = 0; void traite_SIGINT() { if(etat == 2) etat = 3; else etat = 1; } void traite_SIGTSTP() { if(etat == 1) etat = 2; else if(etat == 3) exit(0); else etat = 0; } main() { struct sigaction action; action.sa_handler = traite_SIGINT; sigemptyset(&action.sa_mask); action.sa_flags = 0; sigaction(SIGINT,&action,NULL); action.sa_handler = traite_SIGTSTP; sigemptyset(&action.sa_mask); action.sa_flags = 0; sigaction(SIGTSTP,&action,NULL); while(1) { } }