Ola. Non capisco come mai il seguente programma non funzioni ma si blocchi dopo aver stampato il 2° printf (2 - Processo padre iniziato e in attesa). La mia opinione è che il segnale SIGCONT nella kill può (e viene) ignorato... Come posso forzare il figlio a ripartire?

codice:
#include <errno.h>       /* error definitions and routines */
#include <stdlib.h>      /* C standard library */
#include <unistd.h>      /* unix standard library */
#include <stdio.h>       /* standard I/O library */
#include <string.h>      /* string functions */
#include <sys/types.h>
#include <sys/wait.h>
#include </usr/include/signal.h>  /* funzioni per i segnali*/

main (int argc, char *argv[])
{
	int i, j, status;
	pid_t pid;
	unsigned long a;

	pid = fork ();

	if (!pid)
	{
		printf ("1 - Processo figlio in pausa\n");
		pause();
		printf ("3 - Processo figlio ripreso\n");
		printf ("4 - Processo figlio terminato. Torno al padre\n");
		exit(0);
	} else
	{
	printf ("2 - Processo padre iniziato e in attesa\n");
	sleep(2);
 	kill(pid, SIGCONT);
	wait(NULL);
	printf ("5 - Processo padre terminato. Uscita\n");
	}
	return 0;
}