#include #include #include #include #include void ctrl_c(int); // prototype for signal handler bool keep_going; int main(int argc, char* argv[]){ // signal(SIGINT, ctrl_c); // install handler signal(SIGINT, SIG_IGN); // install handler 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\nsignal for ctrl-c received : %d\n\n\n", signum); if(signum == 2) keep_going = false; signal(SIGINT, ctrl_c); // install handler }