/* USO DELLA FORK CON WAIT: fork-wait.c */

#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>

main()
{
int i,n,w;
n = fork();
if (n == -1)
   {
   fprintf(stderr,"fork fallita\n");
   exit(1);
   }
   else
      if ( n == 0)  /* processo figlio */
	 {
	 printf("\n(figlio) il mio process-id e` %d\n",getpid());
	 printf("\n(figlio) ora aspetto 5 secondi\n");
	 for (i=0; i<5; i++)
		 {
		 system("sleep 1");
		 printf(".\n");
		 }
	 printf("(figlio) ho finito e muoio\n");
	 exit(0);
	 }
	 else       /* processo padre */
	    {
	    printf("\n(padre) il mio process-id e` %d\n",getpid());
	    printf("\n(padre) ora aspetto il figlio\n");
	    w = wait(0);
	    printf("\n(padre) sono uscito dalla wait muoio anch'io\n");
	    exit(0);
	    }
}
