0

我有类似于以下与 Java 中的 gdb 交互的代码。我使用 gdb 启动进程,然后获取进程的流。我有一个线程不断读取进程的输出(使用procOut)并将其打印到屏幕上,然后我使用procIn.println("some_command")-向 gdb 发送命令

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 回答