Redirection sorties

Le
Guillaume GOURDIN
Bonjour à tous,


j'ai le code suivant:

system("blablabla 2>&1 /tmp/tmp.log");

Je m'attends à ce que toutes les sorties soient redigirées vers le
fichier de log, mais il semble que ce ne soit pas le cas. Que faut-il
faire pour capter TOUTES les sorties d'un programme et les rediriger
vers un fichier?

Merci pour votre aide!
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
mpg
Le #16640721
Le (on) mercredi 27 août 2008 15:11, Guillaume GOURDIN a écrit (wrote) :

system("blablabla 2>&1 /tmp/tmp.log");



Euh, donc là tu ne rediriges pas la sortie standard ?

Je m'attends à ce que toutes les sorties soient redigirées vers le
fichier de log, mais il semble que ce ne soit pas le cas. Que faut-il
faire pour capter TOUTES les sorties d'un programme et les rediriger
vers un fichier?



commande (arguments) >fichier 2>&1

redirige la sortie standard et l'erreur standard vers fichier. Mais si ton
programme écrit ailleurs que sur la sortie standard et l'erreur standard,
une redirection shell n'y changera rien...

Manuel.
Paul Gaborit
Le #16640711
À (at) Wed, 27 Aug 2008 15:11:30 +0200,
Guillaume GOURDIN
j'ai le code suivant:

system("blablabla 2>&1 /tmp/tmp.log");

Je m'attends à ce que toutes les sorties soient redigirées vers le
fichier de log, mais il semble que ce ne soit pas le cas. Que faut-il
faire pour capter TOUTES les sorties d'un programme et les rediriger
vers un fichier?



Ce n'est pas vraiment un problème de Perl mais plutôt un problème de
redirection via le shell (auquel, malheureusement, doit faire appel
'system' pour les gérer).

La solution la plus rapide (à écrire) :

system("blablabla > /tmp/tmp.log 2>&1");

La solution la plus propre consisterait à faire un fork avec Perl,
puis, dans le processus fils, faire les redirections voulues (toujours
en Perl) et finir par le exec de 'blablabla' tandis que le processus
père attend la fin du fils...

--
Paul Gaborit - Perl en français -
Publicité
Poster une réponse
Anonyme