Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
535 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  SIGPIPE, perl et Win32

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SIGPIPE, perl et Win32

n°1135298
tpierron
Posté le 29-06-2005 à 23:11:07  profilanswer
 

Hello,
 
Tout d'abord je sais que les signaux ne sont pas vraiment supporté sous perl Win32. C'est juste que je ne savais pas trop quoi mettre comme titre.
 
Le problème : dans une application perl, je dois lancer une autre appli (Utilisant l'API Win32) et qui me renvoit les résultats sur la sortie standard, du genre :
 
open (CMD, "mon_programme_de_la_mort.exe |" );
 
Sauf, que lorsque je quitte l'application principale (en perl donc, via un ctrl/c ou un coup de TaskManager), l'autre l'appli (dont j'ai aussi le code C++) ne quitte jamais, elle continue à écrire imperturbablement sur la sortie standard.
 
Donc, voilà, je me doute bien, que les SIGPIPE ne sont pas gérés sous Win32, donc je serais curieux de savoir s'il y a un moyen de terminer le sous-processus ouvert par Open.
 
J'ai déjà essayé sans trop de succès :
- fork + IO::Pipe : Ah ben, ça ne marche pas du tout.
- Win32::Process::Create : On récupère où la sortie ?
- kill : ça fonctionnerait si je savais comment récupérer automatiquement le pid du processus créé.
 
Sinon, la méthode goret :
- IO::Socket : la fermeture est effectivement repérée à l'autre bout, mais bon ...
 
Quelqu'un s'est déjà cassé les dents là dessus ? Une petite piste de recherche à me mettre sous la dent ?
 
Merci !!

mood
Publicité
Posté le 29-06-2005 à 23:11:07  profilanswer
 

n°1135446
pospos
Posté le 30-06-2005 à 09:42:43  profilanswer
 

il me semble que SIGPIPE marche sous windows? enfin je peux me tromper. Mais en fait je ne vois pas en koi ca t'aiderais? si tu quitte ton programme perl alors c'est ton .exe qui recevra un SIGPIPE, et c'est à lui de quitter à ce moment la. Mais j'imagine que tu n'a aucune controle sur cette appli la.
 
En fait il faudrait que tu arrive à chopper le pid de ton .exe
Ensuite si tu est sous windows tu pourra meme utiliser Win32::Process::KillProcess($pid, $exitcode) qui doit etre mieux géré que kill.
Pour chopper le pid tu pourrais inspecter la table des process avec ca : http://search.cpan.org/~wyant/Win3 [...] nfo-1.005/


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  SIGPIPE, perl et Win32

 

Sujets relatifs
Liste (en fçais) des API Win32 ?[win32] Scrollbar
perl avec sql server 2000[Perl] Transformer code shell en perl
[PERL] SplitCGI avec Perl ou PHP
[PERL] Aide SVP pour recharger un script perl[WIN32] Ouvrir du mp3 VBR avec les fonctions acm* et la lib winmm
Plateforme Win32 et très forte charge : SQL Server ou Oracleperl et le reseaux?
Plus de sujets relatifs à : SIGPIPE, perl et Win32


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR