Windows上无缓冲的子进程标准输出

Nor*_*est 9 c java windows

有没有一种简单的方法来读取子进程无缓冲的输出?我正在尝试从Java调用一个C程序,但显然当连接到管道时它是stdout块缓冲,只有在连接到控制台时才进行行缓冲.我无法修改C程序.

也许有办法欺骗程序认为它连接到控制台?对于适用于Linux的解决方案的奖励积分.

pau*_*sm4 -1

好的 -

1) “行缓冲输入”是控制台模式程序的常见习惯用法,可以追溯到原始的 Unix 和串行模式 VTxx 终端。

2) 您可以读取“原始、无缓冲”I/O(一次击键,而不是一次一行),但详细信息是特定于操作系统的。无论您需要在特定操作系统上执行什么操作,几乎都可以通过 Java 执行。

3)听起来您希望能够拦截 Windows 键盘上的“向上箭头”键或“向下翻页”键。也许用于玩游戏,或用于与控制台模式用户界面交互。

4)有多种选择。您可能希望考虑的是“机器人”API,用于测试:

如果这还不够,请提供更多有关您如何尝试让 Java 程序与 C 程序交互的详细信息(并澄清平台是否确实是 Windows 和 DOS 提示符)。