Sto cercando da stamattina di risolvere questo enigma!!
E' un esercizio d'esame. Bisogna completare il codice doce compare la scritta CODICE MANCANTE !!! Il resto non si deve modificare. Vi prego aiutatemi a capire

Il programma seguente gestisce la comunicazione tramite pipe tra un processo padre e due processi figli (figlio pari e figlio dispari). Il processo padre legge numeri positivi da tastiera fino a che non viene inserito un numero negativo. Se il numero è pari, lo manda al figlio pari, altrimenti lo manda al figlio dispari. I processi figli tengono traccia delle somme parziali. All’inserimento di un numero negativo, il processo padre raccoglie le somme parziali dai processi figli e le stampa a video assieme al totale. Completare le due parti di codice mancanti.
NOTA: non è richiesta la gestione dei segnali.


main(){
int pipe_pari[2], pipe_dispari[2], canale[2];
int somma=0;
int numero, pid, status;
// creo il primo processo figlio (il pari)
if (pipe(canale)==-1) {printf ("errore\n"); exit(-1);}
pid=fork();
if(pid>0){
// codice eseguito solo dal processo padre.
pipe_pari[0]=canale[0];
pipe_pari[1]=canale[1];
if (pipe(canale)==-1) {printf ("errore\n"); exit(-1);}
//Creo il secondo figlio (il dispari)
pid=fork();
if(pid>0) {
// codice eseguito solo dal processo padre.
pipe_dispari[0]=canale[0];
pipe_dispari[1]=canale[1];
}
}
if (pid==0) {
close(pipe_pari[0]);
close(pipe_pari[1]);
close(pipe_dispari[0]);
close(pipe_dispari[1]);
//Completare qui il codice
} else {
close(canale[0]);
close(canale[1]);
printf("scrivi dei numeri (negativo per uscire)\n");
scanf("%d",&numero);
//Completare qui il codice
}
exit(0);
}

HELP PER FAVORE