#include #include #include #include #include void sigusr1(int); // prototype for signal handler void ctrl_c(int); // prototype for signal handler bool keep_going; int main(int argc, char* argv[]){ signal(SIGINT, ctrl_c); // install handler signal(SIGUSR1, sigusr1); // perror("enter loop 1"); keep_going = true; while( keep_going ){ } perror("finish loop 1"); perror("enter loop 2"); keep_going = true; while( keep_going ){ } perror("finish loop 2"); printf("go out of the infinite loop!\n"); return 0; } void ctrl_c(int signum){ printf("\n\n\nctrl-c signal received : %d\n\n\n", signum); for(int i=0; i<25; i+=1){ sleep(1); fprintf(stderr, "."); } } void sigusr1(int sn){ printf("\n\n\nusr1 signal received : %d\n\n\n", sn); for(int i=0; i<25; i+=1){ sleep(1); fprintf(stderr, "."); } }