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 ...
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);
}
}
perché secondo voi non termina??