#include #include #include void traite_sig(int sig) { alarm(10); switch(sig) { case SIGUSR1 : printf("."); fflush(stdout); break; case SIGUSR2 : printf("_"); fflush(stdout); break; case SIGINT : printf(" "); fflush(stdout); break; } } void traite_SIGALRM(int sig) { printf("'\n"); exit(0); } main() { struct sigaction action; action.sa_handler = traite_sig; sigfillset(&action.sa_mask); action.sa_flags = 0; sigaction(SIGUSR1,&action,NULL); sigaction(SIGUSR2,&action,NULL); sigaction(SIGINT,&action,NULL); action.sa_handler = traite_SIGALRM; sigaction(SIGALRM,&action,NULL); printf("Je suis %d\n",getpid()); printf("'");fflush(stdout); alarm(10); while(1); }