Re: Question C

Top Page

Reply to this message
Author: Xavier Bestel
Date:  
To: Edgar Bonet
CC: Liste Guilde
Subject: Re: Question C
On Tue, 2006-10-03 at 17:49 +0200, Xavier Bestel wrote:
> On Tue, 2006-10-03 at 17:38 +0200, Edgar Bonet wrote:
> > Le mardi 3 octobre, Patrick Dupre a écrit :
> > > Je fais un fopen (fichier), comment est-ce que je peux faire pourque
> > > fichier soit la standard output ?
> >
> > Déjà il ne faut pas faire de fopen. ;-)
> >
> >     /* Open output file. */
> >     int fd = open(filename, flags, mode);

> >
> >     /* Redirect file descriptor 1 (stdout). */
> >     dup2(fd, 1);

> >
> >     /* We won't use fd anymore. */
> >     close(fd);

>
> Gni ?
> Déjà un fopen() est mieux qu'un open(), parcequ'il bufferise donc évite
> de faire trop d'appels systèmes (un bon appel système est un appel
> système qui a été évité).
> Ensuite, ton code est un poil compliqué. On peut le remplacer par:
>
>     /* recopie la sortie standard */
>     int fd = dup(1);


Ok, ascusi-moi j'ai pas les yeux en face des trous. On a pas compris la
même chose, je croyais qu'il voulait ouvrir stdout, pas qu'il voulait
remplacer stdout par un autre fichier. C'est toi qui a raison, je vais
retourner sous mon caillou.

    Xav