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 が入力を取得しません。なぜこれが起こるのか知っている人はいますか?