redirection de stderr

redirection de stderr - C++ - Programmation

Marsh Posté le 12-03-2003 à 22:22:58    

J'ai un programme en C et voudrai envoyer systématiquement tous les messages afficher a l'ecran sur un fichier
Je redirige tout les messages affichés sur stderr avec la fonction système freopen("message.log", "w", stderr) et les messages apparaissent de manière tout à fait aléatoir dans le fichier!
Y'a t il une erreur classic de manipulation avec se style de redirection??
Auriez vous des conseils a me donner??
 
Je ne connait pas tellement le fonctionnement de stderr, quelles difference avec stdout si ce n'est k'il est reservé aux erreurs?
 
J'ai testé avec un exemple bidon ça marche très bien mais dans mon code (qui bien plus complex) à priori je dirai que c'est vraiment aléatoir et ne trouve pas de cause plausibles???????


Message édité par peak le 12-03-2003 à 22:23:58
Reply

Marsh Posté le 12-03-2003 à 22:22:58   

Reply

Marsh Posté le 12-03-2003 à 22:26:32    

ben stderr, c'est un flux différent. ça veut dire quoi aléatoirement?

Reply

Marsh Posté le 12-03-2003 à 22:31:52    

ben; style une foi la phrase est dedans et pas la fois d'après alors que j'ai rien modifier a mon code!? :??:

Reply

Marsh Posté le 12-03-2003 à 22:32:40    

et tu me le montre ton code?

Reply

Marsh Posté le 12-03-2003 à 22:38:45    

je veux bien t'envoyer mon code mais c'est assez long (style 20 pages)..?
Si t'est motivé avec plaisire :)

Reply

Marsh Posté le 12-03-2003 à 22:40:17    

tu voudrais pas faire une synthese: je vais pas lire 20pages pour un problème à la con.
 
fais toi un petit porgramme de test, tout court, et regarde


Message édité par Taz le 12-03-2003 à 22:41:03
Reply

Marsh Posté le 12-03-2003 à 22:51:10    

mais c'est ça ke je comprend pas; j'ai testé avec un prog bidon et ça marche nikel!?
 
En fait j'utilise pas mal de librairie système (Unix) et je pensai que peut être il y'avait un truc classic qui faisait planter le redirection?
 
En fait je fork 2fois mon processus et chanqu'un des deux fils fait un appel à une fonction différente ,je voudrai rediriger tout les messages d'erreur des chaqu'une de ces fonctions dans des fichiers log différents.
 
Pour l'instant la redirection est fait juste avant l'appel de fonction.
 
Je vais continuer a chercher je finirai sans doute par trouver mais ce qui m'énèrve c'est ce côté aléatoire alors que je change rien au code par ce que ça me rend vraiment le debugage compliqué!
 
Tant que j'y suis j'en profite pour demander aussi si il est possible que au moment du fork un deuxième terminal s'ouvre dans le quel viendront s'afficher tous les messages d'erreurs d'un des processus?

Reply

Marsh Posté le 12-03-2003 à 22:52:47    

ben pourquoi aps faire la redirection apres le fork. les descripteur de fichiers sont herites par les fils, bonjour le bordel, s'il ecrivent en meme temps sur le meme

Reply

Marsh Posté le 12-03-2003 à 23:02:22    

J'ouvre mes fichiers après le fork mais initialise le pointeur avant peut être est ce du à ça je vais tester...
 
j'aurai plus le net avant demain matin...
si je trouve pas je reposterai demain..
 
 
MERCI pour tes conseils Taz!
a+
 :bounce:

Reply

Sujets relatifs:

Leave a Replay

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