![当进程运行时控制台输入会发生什么?](https://linux22.com/image/1346851/%E5%BD%93%E8%BF%9B%E7%A8%8B%E8%BF%90%E8%A1%8C%E6%97%B6%E6%8E%A7%E5%88%B6%E5%8F%B0%E8%BE%93%E5%85%A5%E4%BC%9A%E5%8F%91%E7%94%9F%E4%BB%80%E4%B9%88%EF%BC%9F.png)
例如,如果我从终端运行如下命令:
$ find . | xargs grep something
然后终端进入一种待处理状态,我可以输入字符和其他内容,等待命令开始将内容打印到标准输出。
该输入会发生什么?它保存在某处吗?它会执行任何操作吗?我知道我可以使用它向应用程序传递信号(例如通过输入 ^C 传递 SIGINT),但其他输入呢?我特别指的是应用程序不提示用户输入的情况。
如果这有点明显,我深表感谢。
答案1
其他输入保存在缓冲区中并用于 shell 中的下一个命令。
例如,如果我从终端运行如下命令:
$ find . | xargs grep something
然后终端进入一种待处理状态,我可以输入字符和其他内容,等待命令开始将内容打印到标准输出。
该输入会发生什么?它保存在某处吗?它会执行任何操作吗?我知道我可以使用它向应用程序传递信号(例如通过输入 ^C 传递 SIGINT),但其他输入呢?我特别指的是应用程序不提示用户输入的情况。
如果这有点明显,我深表感谢。
其他输入保存在缓冲区中并用于 shell 中的下一个命令。