[Process] Probleme d'execution d'un prog c dans un prog java
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 :
Code:
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);
}
}
} |
le prog c est tout simple :
Code:
1 2 3 4 5 6 7 8
|
#include <stdio.h>
int main() {
while(1) {
printf("ok\n");
}
} |
Mais... quand je remplace le prog c par celui la :
Code:
1 2 3 4 5 6 7 8 9
|
#include <stdio.h>
int main() {
while(1) {
sleep(1);
printf("ok\n");
}
} |
le programme java n ecrit plus rien du tout.
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?