/* sigtalk.c Example of how 2 processes can talk */ /* compile with gcc: cc sigtalk.c -o sigtalk */ /* written by sHaDy */ /* NOTE: mmmhhh... se vi va mettete qualche commento al codice */ #include #include void sighup() { signal(SIGHUP,sighup); printf("CHILD: I have received a SIGHUP\n"); } void sigint() { signal(SIGINT,sigint); printf("CHILD: I have received a SIGINT\n"); } void sigquit() { printf("Ahi! Somebody has killed me!\n"); exit(0); } void sighup(); void sigint(); void sigquit(); main() { int pid; if ((pid = fork()) < 0) { perror("fork"); exit(1); } if (pid == 0) { signal(SIGHUP,sighup); signal(SIGINT,sigint); signal(SIGQUIT, sigquit); for(;;); } else { printf("\nPARENT: sending SIGHUP\n\n"); kill(pid,SIGHUP); sleep(3); printf("\nPARENT: sending SIGINT\n\n"); kill(pid,SIGINT); sleep(3); printf("\nPARENT: sending SIGQUIT\n\n"); kill(pid,SIGQUIT); sleep(3); } }