我有类似于以下与 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 没有得到输入。有谁知道为什么会这样?