0

Java から gdb とやり取りする次のようなコードがあります。gdb でプロセスを開始し、プロセスのストリームを取得します。プロセスの出力を ( を使用して) 常に読み取り、それを画面に出力するスレッドがあり、-procOutを使用して gdb にコマンドを送信します。procIn.println("some_command")

Process proc = new ProcessBuilder("gdb").start;

procOut = new BufferedReader(new InputStreamReader(proc.getInputStream()));
procErr = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
procIn = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())));

ただしprocIn、BufferedWriter に変更すると、

procIn = BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));

を使用するprocIn.write("some_command")と、機能せず、gdb が入力を取得しません。なぜこれが起こるのか知っている人はいますか?

4

1 に答える 1

3

BufferedWriter で flush() を実行して、確実に消えるようにする必要があります。

于 2012-05-17T02:15:20.477 に答える