Re: fonction systeme: "communication" avec le shell

Page principale

Répondre à ce message
Auteur: Edgar Bonet
Date:  
À: guilde
Sujet: Re: fonction systeme: "communication" avec le shell
Le mercredi 30 octobre, Pierre Pronchery a écrit :
> >     FILE *simple_popen(char *command)
> >     {
> >         int fd[2];

> >
> >         pipe(fd);
> >         if (!fork()) {
> >             dup2(fd[1], 1);
> >             close(fd[0]);
> >             close(fd[1]);
> >             execlp(command, command, NULL);
> >         }
> >         close(fd[1]);
> >         return fdopen(fd[0], "r");
> >     }

>
> c'est pas mieux d'utiliser fcntl() a dup2()?


Tu peux remplacer

    dup2(fd[1], 1);


par

    close(1);
    fcntl(fd[1], F_DUPFD, 1);


mais je ne vois pas ce que ça fait comme différence. En quoi fcntl()
est-il mieux ?

-- 
Edgar Bonet                         Tél    : 04 76 88 10 96
Laboratoire Louis Néel -- CNRS      Mobile : 06 77 19 79 39
25 av. des Martyrs, BP 166          Fax    : 04 76 88 11 91
38042 Grenoble cedex 9, France      e-mail : guilde@???