#include <signal.h>
#include <stdio.h>

//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);
    }
}
