Y a-t-il moyen de lancer des processus en redirigeant leur sortie
(standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans
passer par le shell système ? C'est-à-dire autre que
system("cmd >out 2>err");
$var = `cmd`;
L'idée est à la fois que c'est pénible de passer par un shell à cause
des arguments et caractères spéciaux à protéger, et que, bah pour le
principe, ça me paraît bizarre de pas savoir le faire directement en
Perl.
À la rigueur, si ce n'est pas portable (genre pas sur windows), ça ne me
dérange pas trop.
Je ne sais pas trop quels mots-clé utiliser pour cherche dans la
documenbtation ou sur le CPAN.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thomas vO
salut,
à (at) Thu, 22 Jan 2009 14:27:28 +0100 (CET), mpg <mpg+ nous disait (told us):
Y a-t-il moyen de lancer des processus en redirigeant leur sortie (standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans passer par le shell système ?
-- Thomas vO - <http://perso.enstimac.fr/~vanouden/>
salut,
à (at) Thu, 22 Jan 2009 14:27:28 +0100 (CET),
mpg <mpg+news@elzevir.fr> nous disait (told us):
Y a-t-il moyen de lancer des processus en redirigeant leur sortie
(standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans
passer par le shell système ?
à (at) Thu, 22 Jan 2009 14:27:28 +0100 (CET), mpg <mpg+ nous disait (told us):
Y a-t-il moyen de lancer des processus en redirigeant leur sortie (standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans passer par le shell système ?
-- Thomas vO - <http://perso.enstimac.fr/~vanouden/>
Joseph
> Y a-t-il moyen de lancer des processus en redirigeant leur sortie (standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans passer par le shell système ?
Voir un des modules suivant : IPC::Open2 IPC::Open3 IPC::Run ou même POE::Wheel::Run ;)
-- jogo
> Y a-t-il moyen de lancer des processus en redirigeant leur sortie
(standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans
passer par le shell système ?
Voir un des modules suivant :
IPC::Open2
IPC::Open3
IPC::Run
ou même POE::Wheel::Run ;)
> Y a-t-il moyen de lancer des processus en redirigeant leur sortie (standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans passer par le shell système ?
Voir un des modules suivant : IPC::Open2 IPC::Open3 IPC::Run ou même POE::Wheel::Run ;)
-- jogo
Patrice Karatchentzeff
mpg <mpg+ a écrit :
Y a-t-il moyen de lancer des processus en redirigeant leur sortie (standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans passer par le shell système ? C'est-à-dire autre que
system("cmd >out 2>err"); $var = `cmd`;
L'idée est à la fois que c'est pénible de passer par un shell à cause des arguments et caractères spéciaux à protéger, et que, bah pour le principe, ça me paraît bizarre de pas savoir le faire directement en Perl.
À la rigueur, si ce n'est pas portable (genre pas sur windows), ça ne me dérange pas trop.
Je ne sais pas trop quels mots-clé utiliser pour cherche dans la documenbtation ou sur le CPAN.
Y a-t-il moyen de lancer des processus en redirigeant leur sortie
(standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans
passer par le shell système ? C'est-à-dire autre que
system("cmd >out 2>err");
$var = `cmd`;
L'idée est à la fois que c'est pénible de passer par un shell à cause
des arguments et caractères spéciaux à protéger, et que, bah pour le
principe, ça me paraît bizarre de pas savoir le faire directement en
Perl.
À la rigueur, si ce n'est pas portable (genre pas sur windows), ça ne me
dérange pas trop.
Je ne sais pas trop quels mots-clé utiliser pour cherche dans la
documenbtation ou sur le CPAN.
Y a-t-il moyen de lancer des processus en redirigeant leur sortie (standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans passer par le shell système ? C'est-à-dire autre que
system("cmd >out 2>err"); $var = `cmd`;
L'idée est à la fois que c'est pénible de passer par un shell à cause des arguments et caractères spéciaux à protéger, et que, bah pour le principe, ça me paraît bizarre de pas savoir le faire directement en Perl.
À la rigueur, si ce n'est pas portable (genre pas sur windows), ça ne me dérange pas trop.
Je ne sais pas trop quels mots-clé utiliser pour cherche dans la documenbtation ou sur le CPAN.
À (at) Thu, 22 Jan 2009 14:27:28 +0100 (CET), mpg <mpg+ écrivait (wrote):
Bonjour,
Y a-t-il moyen de lancer des processus en redirigeant leur sortie (standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans passer par le shell système ? C'est-à-dire autre que
system("cmd >out 2>err"); $var = `cmd`;
L'idée est à la fois que c'est pénible de passer par un shell à cause des arguments et caractères spéciaux à protéger, et que, bah pour le principe, ça me paraît bizarre de pas savoir le faire directement en Perl.
À la rigueur, si ce n'est pas portable (genre pas sur windows), ça ne me dérange pas trop.
Je ne sais pas trop quels mots-clé utiliser pour cherche dans la documenbtation ou sur le CPAN.
Pour la documentation, la doc de la fonction 'open' et la doc 'perlipc' sont un bon début. Il y a aussi des choses dans la faq ('perldoc -q daemon' et d'autres...). Et il y a aussi pas mal de modules (qui répondent chacun à des besoins précis) comme Proc::Daemon, Parallel::Jobs ou IPC::Open3 entre autres...
En fait, il faut bien comprendre ce qu'on fait lorsqu'on passe par 'system' ou les backticks, qu'on utilise le shell et ses redirections, et reproduire tout cela 'à la main' via Perl. Sur le principe, c'est asses simple (en gros, on n'utilise des 'fork', des 'exec' et de la (ré)ouverture de flux) mais il est courant d'oublier quelques paramètres de l'équation...
Mais pour qui veut gérer la sécurité et la fiabilité de son soft, il est indispensable de maîtriser tout cela et d'éviter comme la peste le passage par le 'shell'.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Thu, 22 Jan 2009 14:27:28 +0100 (CET),
mpg <mpg+news@elzevir.fr> écrivait (wrote):
Bonjour,
Y a-t-il moyen de lancer des processus en redirigeant leur sortie
(standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans
passer par le shell système ? C'est-à-dire autre que
system("cmd >out 2>err");
$var = `cmd`;
L'idée est à la fois que c'est pénible de passer par un shell à cause
des arguments et caractères spéciaux à protéger, et que, bah pour le
principe, ça me paraît bizarre de pas savoir le faire directement en
Perl.
À la rigueur, si ce n'est pas portable (genre pas sur windows), ça ne me
dérange pas trop.
Je ne sais pas trop quels mots-clé utiliser pour cherche dans la
documenbtation ou sur le CPAN.
Pour la documentation, la doc de la fonction 'open' et la doc
'perlipc' sont un bon début. Il y a aussi des choses dans la faq
('perldoc -q daemon' et d'autres...). Et il y a aussi pas mal de
modules (qui répondent chacun à des besoins précis) comme
Proc::Daemon, Parallel::Jobs ou IPC::Open3 entre autres...
En fait, il faut bien comprendre ce qu'on fait lorsqu'on passe par
'system' ou les backticks, qu'on utilise le shell et ses redirections,
et reproduire tout cela 'à la main' via Perl. Sur le principe, c'est
asses simple (en gros, on n'utilise des 'fork', des 'exec' et de la
(ré)ouverture de flux) mais il est courant d'oublier quelques
paramètres de l'équation...
Mais pour qui veut gérer la sécurité et la fiabilité de son soft, il
est indispensable de maîtriser tout cela et d'éviter comme la peste le
passage par le 'shell'.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Thu, 22 Jan 2009 14:27:28 +0100 (CET), mpg <mpg+ écrivait (wrote):
Bonjour,
Y a-t-il moyen de lancer des processus en redirigeant leur sortie (standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans passer par le shell système ? C'est-à-dire autre que
system("cmd >out 2>err"); $var = `cmd`;
L'idée est à la fois que c'est pénible de passer par un shell à cause des arguments et caractères spéciaux à protéger, et que, bah pour le principe, ça me paraît bizarre de pas savoir le faire directement en Perl.
À la rigueur, si ce n'est pas portable (genre pas sur windows), ça ne me dérange pas trop.
Je ne sais pas trop quels mots-clé utiliser pour cherche dans la documenbtation ou sur le CPAN.
Pour la documentation, la doc de la fonction 'open' et la doc 'perlipc' sont un bon début. Il y a aussi des choses dans la faq ('perldoc -q daemon' et d'autres...). Et il y a aussi pas mal de modules (qui répondent chacun à des besoins précis) comme Proc::Daemon, Parallel::Jobs ou IPC::Open3 entre autres...
En fait, il faut bien comprendre ce qu'on fait lorsqu'on passe par 'system' ou les backticks, qu'on utilise le shell et ses redirections, et reproduire tout cela 'à la main' via Perl. Sur le principe, c'est asses simple (en gros, on n'utilise des 'fork', des 'exec' et de la (ré)ouverture de flux) mais il est courant d'oublier quelques paramètres de l'équation...
Mais pour qui veut gérer la sécurité et la fiabilité de son soft, il est indispensable de maîtriser tout cela et d'éviter comme la peste le passage par le 'shell'.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Olivier Croquette
Joseph wrote, On 22/01/09 14:51:
Y a-t-il moyen de lancer des processus en redirigeant leur sortie (standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans passer par le shell système ?
IPC::Run
Je recommande IPC::Run !
Joseph wrote, On 22/01/09 14:51:
Y a-t-il moyen de lancer des processus en redirigeant leur sortie
(standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans
passer par le shell système ?
Y a-t-il moyen de lancer des processus en redirigeant leur sortie (standard ou d'erreur) vers ce qu'on veut (fichier, variables, ...) sans passer par le shell système ?