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 : 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);
        }
    }
}
le prog c est tout simple :
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");
  }
}
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
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?