À (at) 16 Dec 2005 07:04:32 -0800, "ctobini" écrivait (wrote):
J'utilise un programme dans un de mes scripts grâce à system().
Ce programme est très bavare, et je voudrais supprimer ses messages dans le Terminal.
Sauriez-vous comment effectuer ceci ?
En redirigeant sa sortie vers /dev/null :
system("/le/chemin/de/la/commande ses arguments > /dev/null");
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Jacques Caron
Salut,
On Fri, 16 Dec 2005 16:04:32 +0100, ctobini wrote:
J'utilise un programme dans un de mes scripts grâce à system().
Ce programme est très bavare, et je voudrais supprimer ses messages dans le Terminal.
Plein d'options:
- simple mais pas forcément portable: system("programme >/dev/null 2>/dev/null")
- si tu n'as plus besoin des sorties standard toi-même: close STDOUT; close STDERR; system("programme");
- plus compliqué, pas forcément portable: faire un fork puis close STDOUT et STDERR, puis system
- si tu as besoin des sorties standard: faire une copie de STDOUT et STDERR, les fermer, faire l'appel, puis restaurer STDOUT et STDERR
- simple `programme`; ou qx{programme};
- un peu plus long: utiliser open("programme |") et avaler ce qu'il répond en retour et le jeter aussi sec genre: open my $pipe,"programme |" or die; while (<$pipe>); close my $pipe;
On peut probablement encore trouver un paquet d'autres méthodes...
Jacques. -- Oxado http://www.oxado.com/
Salut,
On Fri, 16 Dec 2005 16:04:32 +0100, ctobini <ctemp2@free.fr> wrote:
J'utilise un programme dans un de mes scripts grâce à system().
Ce programme est très bavare, et je voudrais supprimer ses messages
dans le Terminal.
Plein d'options:
- simple mais pas forcément portable:
system("programme >/dev/null 2>/dev/null")
- si tu n'as plus besoin des sorties standard toi-même:
close STDOUT;
close STDERR;
system("programme");
- plus compliqué, pas forcément portable:
faire un fork puis close STDOUT et STDERR, puis system
- si tu as besoin des sorties standard:
faire une copie de STDOUT et STDERR, les fermer, faire l'appel, puis
restaurer STDOUT et STDERR
- simple
`programme`; ou qx{programme};
- un peu plus long:
utiliser open("programme |") et avaler ce qu'il répond en retour et le
jeter aussi sec genre:
open my $pipe,"programme |" or die;
while (<$pipe>);
close my $pipe;
On peut probablement encore trouver un paquet d'autres méthodes...
On Fri, 16 Dec 2005 16:04:32 +0100, ctobini wrote:
J'utilise un programme dans un de mes scripts grâce à system().
Ce programme est très bavare, et je voudrais supprimer ses messages dans le Terminal.
Plein d'options:
- simple mais pas forcément portable: system("programme >/dev/null 2>/dev/null")
- si tu n'as plus besoin des sorties standard toi-même: close STDOUT; close STDERR; system("programme");
- plus compliqué, pas forcément portable: faire un fork puis close STDOUT et STDERR, puis system
- si tu as besoin des sorties standard: faire une copie de STDOUT et STDERR, les fermer, faire l'appel, puis restaurer STDOUT et STDERR
- simple `programme`; ou qx{programme};
- un peu plus long: utiliser open("programme |") et avaler ce qu'il répond en retour et le jeter aussi sec genre: open my $pipe,"programme |" or die; while (<$pipe>); close my $pipe;
On peut probablement encore trouver un paquet d'autres méthodes...
Jacques. -- Oxado http://www.oxado.com/
ctobini
Bonjour et merci pour vos réponses,
Le script étant destiné uniquement à un système Linux, je vais pour l'instant utiliser une redirection vers /dev/null.
Je ne manquerai évidemment pas de tester les autres solutions proposées :-)
Merci encore et bonne journée.
C. Tobini
Bonjour et merci pour vos réponses,
Le script étant destiné uniquement à un système Linux, je vais pour
l'instant utiliser une redirection vers /dev/null.
Je ne manquerai évidemment pas de tester les autres solutions
proposées :-)