UNIX: Problème de pipe

CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 24 avril 2003 à 23:50
cs_Boba Messages postés 1 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 29 décembre 2004 - 29 déc. 2004 à 19:55
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

cs_Boba Messages postés 1 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 29 décembre 2004
29 déc. 2004 à 19:55
rajoute un wait(NULL);
dans le père sinon le père risque de s'executer avant le fils dans ton fork.
0
Rejoignez-nous