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