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 !!