#include #include //void my_handler2() { signal(SIGUSR1, my_handler2);} não é necessário // este pgm precisa de um wait do pai para o filho void my_handler2() { } main() { pid_t new_pid; int n=0; signal(SIGUSR1, my_handler2); if ((new_pid = fork())==0) { // se filho new_pid = getppid(); n = 1; while (n <= 20) { sleep(1); printf("Filho: %d\n", n); n += 2; kill(new_pid, SIGUSR1); pause(); } } else while (n <= 20) { pause(); n += 2; printf("Pai: %d\n", n); kill(new_pid, SIGUSR1); } }