j ai un probleme avec un programme java executant un programme c.
le programme java recupere les sorties du prog c et les reecrit simplement
avec println.
voici le prog java :
le prog c est tout simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import java.io.*; public class Essai { public static void main(String args[]) { try { Runtime r = Runtime.getRuntime(); Process p=r.exec("essai"); InputStreamReader bi = new InputStreamReader(p.getInputStream()); BufferedReader b = new BufferedReader(bi); while(true) { String s = b.readLine(); if(s!=null) System.out.println(s); } } catch(Exception e) { System.out.println("erreur de lecture"); System.exit(0); } } }
Mais... quand je remplace le prog c par celui la :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include <stdio.h> int main() { while(1) { printf("ok\n"); } }
le programme java n ecrit plus rien du tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include <stdio.h> int main() { while(1) { sleep(1); printf("ok\n"); } }
je pense que le probleme vient du fait que le prog java n attend pas d
avoir quelquechose sur la sortie du prog c. si il n y trouve rien du
premier coup , il se bloque mais je ne comprends pas pourquoi.
Avez vous une idee?
Partager