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:
sapreste darmi gentilmente una mano???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); } } }
Grazie![]()

Rispondi quotando