UNIX: Problème de pipe

Signaler
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
-
Messages postés
1
Date d'inscription
dimanche 10 décembre 2000
Statut
Membre
Dernière intervention
29 décembre 2004
-
La communication à travers un pipe ne se fait pas.
Kelkun pourrait-il m'aider ?

int fds[2];
int f= open("fichier", O_RDONLY);
pid_t p;

pipe(fds);

p= fork();

if( p > 0 )
{
char buf[1024];
int n;

while( (n= read(f, buf, 1024)) > 0 )
write(fds[1], buf, n);

close(f);
close(fds[1]);
}
else if( p == 0 )
{
dup2(fds[0], 0);
execv("lpr", 0);
}


Core Breaker :)

1 réponse

Messages postés
1
Date d'inscription
dimanche 10 décembre 2000
Statut
Membre
Dernière intervention
29 décembre 2004

rajoute un wait(NULL);
dans le père sinon le père risque de s'executer avant le fils dans ton fork.