Comment créer un pipe IN & OUT en executant un binaire ?

Comment créer un pipe IN & OUT en executant un binaire ? - Perl - Programmation

Marsh Posté le 26-11-2009 à 06:15:36    

Salut ;)
 
Tout le monde sait faire open(CMD, "gzip fichier|" );
puis lire dans <CMD> avec un while par ex.
(gzip n'est qu'un exemple hein...)
 
Mais voila: et si je veux aussi utiliser le STDIN de gzip tout en lisant son STDOUT ?
(je ne parle donc pas des STDIN et STDOUT du perl, mais bien du binaire que le perl execute...)
 
Dans mon exemple, je voudrais donc compresser $data et non un fichier, en envoyant $data à gzip pendant que je lis le résultat...
 
Merci par avance ! ;)


---------------
La vie c'est comme une boite de chocolats, on ne sait jamais sur quoi on va tomber. (Forrest Gump)
Reply

Marsh Posté le 26-11-2009 à 06:15:36   

Reply

Marsh Posté le 26-11-2009 à 12:57:31    

Quelques billes ici: http://perldoc.perl.org/perlipc.ht [...] er-Process
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 26-11-2009 à 16:23:09    

merci beaucoup !
 
donc y'a pas de méthode standard finalement ? :(
dommage de devoir faire du bricolage... j'aime pas trop ca :-\


---------------
La vie c'est comme une boite de chocolats, on ne sait jamais sur quoi on va tomber. (Forrest Gump)
Reply

Marsh Posté le 26-11-2009 à 16:39:18    

Non, il n'y a pas de méthode standard, car en général, c'est peu couteux de passer par un fichier temporaire voire par des fichier "en mémoire" associés a des variables, suivant une syntaxe du type open($fh, '>', \$variable) ou on associe un file handle $fh à une variable $variable, et ou tout ce qui est écrit sur le file handle est en mémoire, accessible par la variable $variable [on peut faire plus ou moins de même en entrée]
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

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