JavaからCプログラムを呼び出して標準出力を取得しようとしています。ここに私のコードは次のとおりです。ここでgetchar()でCプログラムからJavaの標準出力を取得する際に問題が発生する
try {
ProcessBuilder pb = new ProcessBuilder("helloworld.exe");
pb.redirectErrorStream(true); // Merge std out and std err into same stream
program = pb.start(); // Start program
BufferedReader input = new BufferedReader(new InputStreamReader(program.getInputStream()));
line = input.readLine();
while (line != null) {
System.out.println(line);
line = input.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
は、サンプルのCプログラムです:
int main(){
printf("Hello world\n");
}
私は(この場合のhelloworld)を実行していたプログラムはそれでgetchar()
を持っていない時にこれが正常に動作します。しかし、printfの直後にgetchar()
を追加すると、入力ストリームから何も得られません。なぜどんなアイデア?カイルとして
おかげ
はしばらくの間cで動作しませんでしたが、印刷後に出力ストリームをフラッシュしようとする場合があります – Kyle
cプログラムを単独で実行してエラーが発生しているかどうか、 –
なぜ入力を必要としないプログラムに 'getchar'を追加しますか? ??? – pmg