écrire des fichiers log

Messages postés
13
Date d'inscription
vendredi 8 septembre 2006
Statut
Membre
Dernière intervention
8 février 2007
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Bonjour,

Lorsqu'on a un programme console qui affiche divers trucs à l'écran, on peut sauvegarder en redirigeant l'entrée vers un fichier, mais du coup, on ne voit plus rien à l'écran...
Y a-t-il un moyen d'avoir à la fois la sortie sur le fichier et l'écran ?

4 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut :

Tu peux utiliser la fonction fileno pour créer un handle sur le flux que tu veux.

int handle fileno (stdin);
// Selon la documentation aucune erreur n'est indiquée
// Si une erreur se produit
 
Messages postés
13
Date d'inscription
vendredi 8 septembre 2006
Statut
Membre
Dernière intervention
8 février 2007

Salut,
Désolé, j'ai pas vraiment compris ton astuce
avec fileno, je convertis FILE * stdout en int handle c'est ça que tu veux dire ?

unsigned char tamp[10];
puts("blah");
int a=fileno(stdout);
printf("%d\n",read(a, tamp, 5));

ça affiche bien à l'écran, mais juste après stdout est vide et read retourne -1. J'ai pas du saisir la manip.
Messages postés
13
Date d'inscription
vendredi 8 septembre 2006
Statut
Membre
Dernière intervention
8 février 2007

Salut,
Désolé, j'ai pas vraiment compris ton astuce
avec fileno, je convertis FILE * stdout en int handle c'est ça que tu veux dire ?

unsigned char tamp[10];
puts("blah");
int a=fileno(stdout);
printf("%d\n",read(a, tamp, 5));

ça affiche bien à l'écran, mais juste après stdout est vide et read retourne -1. J'ai pas du saisir la manip.
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut :

fileno permet de créer un second handle vers le flux que tu veux dupliquer. 

J'ai pensé au fait que tu dois créer un second handle vers le flux de sotrie pour :

1. Afficher des données à l'écran.
           
Et en même temp

2. Ecrire des données dans un fichier.