title: Signal sent to both child and parent process
body: <p>As far as I understand signals sent to a parent process should not be sent to children. So why does SIGINT reach both the child and the parent in the example below?</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;signal.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;unistd.h&gt;
  
  void sigCatcher( int );
  
  int main ( void ) {
      if (signal(SIGINT, sigCatcher) == SIG_ERR) {
          fprintf(stderr, "Couldn't register signal handler\n");
          exit(1);
      }
      if(fork() == 0) {
          char *argv[] = {"find","/",".",NULL};
          execvp("find",argv);
      }
      for (;;) {
          sleep(10);
          write(STDOUT_FILENO, "W\n",3);
      }
  
      return 0;
  }
  
  void sigCatcher( int theSignal ) {
          write(STDOUT_FILENO, "C\n",3);
  }
  </code></pre>