我的代码类似于以下与Java中的gdb交互。我用gdb启动进程,然后获取进程的流。我有一个线程不断读取进程的输出(使用 但是如果我将 并使用procOut
)并将其打印到屏幕上,然后使用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没有得到输入。有人知道为什么会这样吗?
答案 0 :(得分:3)
你必须在BufferedWriter上做一个flush()以确保它熄灭。