vi riporto il codice ....non capisco perchè quando voglio far leggere al padre quello che scrive il figlio si blocca in esecuzione ...........perchè?!
#include <sys/types.h>
#include <stdio.h>
#include <sys/wait.h>
#include <stdlib.h>
main()
{
int c;
int j=6;
int pid;
int status;
int piped[2];
/* genera primo figlio*/
pipe(piped);
pid=fork();
if (!pid)
{printf("\n");
printf("Sono il filgio:PID=%d PPID=%d ",getpid(),getppid());
read(piped[0],&c,sizeof(int));
printf("leggo %d\n",c);
write(piped[1],8,sizeof(int)); esattamente qui
printf("sono il figlio ho scritto %d");
exit(0);
}
else
{printf("\n");
write(piped[1],&j,sizeof(int));
printf("sono il padre e ho scritto %d\n",j);
read(piped[0],&c,sizeof(int)); esattamente qui
printf("sono il padre e leggo %d\n",c);
pid=wait(&status);
printf("figlio terminato:PID=%d Stato=%d\n",pid,status);
printf("programma terminato");
getchar();
}
}