Copier dans un log l'execution d'une Win32... pouet !

Copier dans un log l'execution d'une Win32... pouet ! - C - Programmation

Marsh Posté le 16-05-2007 à 16:52:24    

Bonjour à tous,
 
Voici mon problème...
 
Je fais un menu interactif à la c** en C dans une fenètre de commande type Win32 Console Application, qui débouche à une éxecution correspondant à des resultats de test; et j'aimerai pouvoir sauver dans un fichier log, TOUT ce qui s'affiche dans la fenêtre... vraiment tout.
 
Bien entendu, mon programme fait "quelques" pages, et je ne veux pas rajouter sous chaque printf un fprintf... Cela serai beaucoup trop de lignes de codes. (Quelques milliers en plus à peu près... :D)
 
Pour ma part je sais comment créer, ouvrir et fermer le fichier via le logiciel, mais je ne sais absolument pas comment faire pour lui dire: "Hè petit ! Tu vois tout ce qu'il y a dans la fenetre Win32? ba tu fais un "copier coller" en parallèle (car la fenetre sature au bout d'un moment et perd au fur et a mesure les données du début...) de tout ce qu'il y a écrit dedans! ok?"
 
Donc si quelqu'un avait une petite idée... :)
 
Je vous remercie à l'avance pour votre aide, j'espère que mon explication est claire.
 
Cordialement
 
Jonathan.


Message édité par artichomaske le 16-05-2007 à 18:16:06

---------------
_______________________________________________________________
Reply

Marsh Posté le 16-05-2007 à 16:52:24   

Reply

Marsh Posté le 16-05-2007 à 17:05:45    

Ce que tu peux faire facilement c'est rediriger ce qui s'affiche normalement à l'écran pour que ça aille dans un fichier (et donc plus rien ne s'affiche à l'écran), mais tu ne peux pas simplement dupliquer les données pour les avoir à la fois à l'écran et dans un fichier.
 
Celà dit une solution simple serait d'écrire ta propre fonction my_printf() qui fait un printf et un fprintf, et appeler my_printf partout au lieu d'appeler directement printf.

Reply

Marsh Posté le 16-05-2007 à 17:45:19    

Merci pour ta réponse matafan.
J'avai en effet pensé a rediriger ce qui s'affiche à l'écran, mais mon menu est interactif, j'ai donc besoin de voir ce qui se passe pour entrer des choix.
 
Pour la fonction my_printf(), le problème est que j'ai des printf à arguments variables... As tu une suggestion ou un exemple de redaction pour rediger un my_printf ? :)
 
Merci encore!
 
Jonathan

Reply

Marsh Posté le 16-05-2007 à 22:07:41    

Tu peux faire une fonction variadique utilisant les va_arg. Ta fonction appellera vprintf() et vfprintf().
 
Si tu préfère tu peux aussi faire une macro variadique (http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html).

Reply

Marsh Posté le 17-05-2007 à 10:48:02    

Ok merci je vais essayer de je vous tiens au courant...
 
Si jamais vous avez d'autres idées... n'hésitez pas, toutes sont la bien venue !!!!!!!!!!!!!!!
 
tks

Reply

Marsh Posté le 17-05-2007 à 10:50:21    

Crée un second programme qui lis son entrée standard et réécrit tout sur la sortie standard + dans un fichier.
Ou alors utilise celui qui existe déja: tee


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 17-05-2007 à 11:31:32    

PS: Je suis sous windows 2000 avec Microsoft Visual C++ 6.0 ... :)
 
Je ne sais pas si c'est lié, mais le compilo n'aime pas trop les (...) :/

Reply

Marsh Posté le 18-05-2007 à 11:42:52    

Re!
Donc ca ne marche belle est bien pas...  
Les versions du compilateur et du logiciel sont trop vieilles et ne gerrent donc pas les macros à arguments variables... Surtout le combo de symbole " (...) " ...
Je ne pense pas qu'il existe une mise à jour (en anglais :) ) et encore moins si il y a un header qui fera la traduction...
 
Ensuite pour rediriger la sortie standard, je ne sais absolument pas comment faire sous windows, sous linux oui par contre, mais mon travail est sous windows !  
 
No sé !
Nosa... :(


Message édité par artichomaske le 18-05-2007 à 11:45:14
Reply

Marsh Posté le 20-05-2007 à 11:13:54    

si tu n'ecris que "myprintf(...)" , c'est pas etonnant qu'il aime pas...
http://fr.wikibooks.org/wiki/Progr [...] C3%A9dures

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed