Devo fare un programma che crea tre processi figli, con delle pipe tra di essi.
il processo 1 scrive un messaggio al processo 2, il quale lo scrive tale e quale al proc 3, che poi lo rimanda al processo 1.Quando al processo 1 ritorna lo stesso messagio, ne manda uno nuovo...
guardando degli esempi sono riuscito a farne uno, ma con un solo processo figlio....il problema è come fare a far comunicare 3 processi figli...
ecco quello che sono riuscito a fare:
codice:
#include <stdio.h>
main()
{int fdes1[2];int fdes2[2];
int pid;
int i=1;
int j=1;
char buffer1[5];
char buffer2[6];
pipe(fdes1); /*creating first pipe*/
pipe(fdes2); /* second pipe */
pid = fork();
if (pid==0){ /*child */
close(fdes1[1]);
close(fdes2[0]);
while(i!=0){
i=read(fdes1[0], buffer1,5);
printf("%d characters received by child= ",i);
buffer1[i]='\0';
printf("%s\n",buffer1);
}
close(fdes1[0]);
sleep(1);
write(fdes2[1],"Ciao, Papa!",sizeof("Ciao, Papa!"));
}
if (pid!=0) { /* in parent */
close(fdes1[0]);
close(fdes2[1]);
write(fdes1[1],"Ciao, Bambino!",sizeof("Ciao, Bambino!"));
close(fdes1[1]);
while(j!=0){
j=read(fdes2[0], buffer2,6);
printf("%d characters received by father= ",j);
buffer2[j]='\0';
printf("%s\n",buffer2);
}
}
}
sapreste darmi gentilmente una mano???
Grazie