The same example, but the child creates becomes the leader of a new process group.
What happens now, when a SIGINT interrupts the terminal?
...
signal(SIGINT, handlerP);
shell_pid = getppid();
mypid = fork();
if ( mypid == 0 ) {
signal(SIGINT, handlerC);
setpgid(0, getpid());
...