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

  FORUM HardWare.fr
  Programmation
  Java

  Envoyer une interruption à partir d'un programme Java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Envoyer une interruption à partir d'un programme Java

n°1447459
XK
Posté le 26-09-2006 à 10:55:14  profilanswer
 

Bonjour
 
J'ai deux programmes : une interface en Java et un programme en C (win32).
L'interface exécute le programme en C et lis les données en sortie jusqu'à ce que l'utilisateur décide d'arrêter.
A ce moment là je dois donc stopper le programme en C qui effectue une boucle infinie. J'ai ajouté au programme C une fonction pour détecter les interruptions, quand il reçoit la bonne interruption il arrête sa boucle et se termine proprement...
 
Mon problème c'est que je ne sais pas comment envoyer l'interruption depuis mon programme en Java, il y a bien "Process.destroy()" mais ce n'est pas propre et parfois le programme en C ne se termine pas, ce qui est très problématique pour la suite... :(
 
Merci pour votre aide :hello:

mood
Publicité
Posté le 26-09-2006 à 10:55:14  profilanswer
 

n°1447461
Taz
bisounours-codeur
Posté le 26-09-2006 à 10:57:28  profilanswer
 

t'as qu'à juster fermer le stdin du programme C et ça sera fini si ce programme en est un.

n°1447478
XK
Posté le 26-09-2006 à 11:31:22  profilanswer
 

même en fermant le stdin/out le programme continu car il ne fait pas que ça...
 
J'ai essayé de faire le code suivant :
 

Code :
  1. OutputStream _out = proc.getOutputStream();
  2. ...
  3. _out.write(new byte[]{(byte)0x03});  // caractère ASCII pour "Ctrl+c" (signal SIGTERM)
  4. _out.flush();
  5. _out.close();


 
mais le programme ne réagit pas...

n°1447509
Taz
bisounours-codeur
Posté le 26-09-2006 à 12:02:24  profilanswer
 

bah le programme en question est pourrave. ça veut dire que si l'entrée standard est fermée (EOF) avec CTRL+D / CTRL+Z bah il va pas le voir et boucler comme un con sur du vide.
 
Remarque : après avoir fermé stdin, il faut que tu lises TOUT ce qu'il y a lire sur stdout/stderr.

n°1447555
XK
Posté le 26-09-2006 à 13:31:36  profilanswer
 

c'est possible que ce soit un problème de stdin/out. mon programme en C dispose de centaines de processus fils alors ce n'est pas évident de gérer tout ça...


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

  Envoyer une interruption à partir d'un programme Java

 

Sujets relatifs
Lancer un programme depuis une page en PHPJava, accéder aux API windows
[Javascript] Accéder à un champ à partir d'une autre pagefonction getBytes() de java en php
Impression de fichiers à partir de page webimage java dans du html
[C#.NET] Repertoire courant du programme, ya un raccourci ?envoyer un formulaire javascript
[JAVA] Hibernate - requète SQL ALTER TABLEWin Api : L'utilisation du menu fait planter le programme
Plus de sujets relatifs à : Envoyer une interruption à partir d'un programme Java


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