ho scritto questo semplice programma per impratichirmi sull'uso delle pipe, ma per un motivo che non riesco a comprendere il programma esegue le exec ma non termina... ho provato a mettere delle wait nel processo padre e non mi stampa nemmeno a video il risultato... non so davvero che pesci prendere, sono convinto di essermi perso in un bicchiere d'acqua ...
perché secondo voi non termina??codice:#include<stdio.h> #include<stdlib.h> #include<unistd.h> int main (int argc, char **argv) { int pid1,pid2; int fd[2]; if((pipe(fd))!=0) {printf("error!");exit(1);} if (( pid1= fork()) == 0 ) { close(fd[0]); dup2(fd[1],1); execlp("ls","ls",NULL); printf("error"); } if(( pid2= fork()) == 0 ) { close(fd[1]); dup2(fd[0],0); execlp("sort","sort",NULL); printf("error"); } if( pid2 > 0) { exit(0); } }

Rispondi quotando