【发布时间】:2010-12-18 18:50:11
【问题描述】:
如果我在 linux 命令行上运行“python”,并且没有提供任何命令行参数,程序会显示欢迎消息并等待用户输入。我假设在后台,程序将消息发送到“标准输出”流并在“标准输入”流上执行阻塞读取。
但是,如果我通过管道传输来自另一个进程的输出来间接调用 python(例如 echo "hello" | python),python 不会输出该消息。不知何故,它可以区分原始场景(a)“标准输入”流由其他进程填充的场景和(b)“标准输入”流从键盘填充的场景。
这是如何实现的?我一直认为这些信息不适用于应用程序。 Java 应用程序如何实现这种差异化?
【问题讨论】:
标签: command-line console keyboard pipe