/* arquivo test_sign_fork.c */ /* heranca pelo filho do comportamento do pai * em relacao aos sinais */ #include <errno.h> #include <stdio.h> #include <unistd.h> #include <signal.h> void fin() { printf("SIGINT para os processos %d\n",getpid()) ; exit(0) ; } int main() { signal(SIGQUIT,SIG_IGN) ; signal(SIGINT,fin) ; if (fork()>0){ printf("processo pai : %d\n",getpid()) ; while(1) ; } else { printf("processo filho : %d\n",getpid()) ; while(1) ; } exit(0); }
Resultado da execução:
euler:~/> test_sign_fork processo pai : 1736 processo filho : 1737 SIGINT para os processos 1737 SIGINT para os processos 1736 euler:~/>