会话中的每个进程是否从会话所连接的终端获取输入并将其输出发送到该终端?

会话中的每个进程是否从会话所连接的终端获取输入并将其输出发送到该终端?

本教程内容如下:

每个会话都绑定到一个终端,会话中的进程从该终端获取输入并将输出发送到该终端。

我认为这个陈述是不正确的,因为说我从终端打开了一些程序(这个程序/进程将位于连接到终端的会话中)并且我将该程序重定向stdout到一个文件。现在程序不会将其输出发送到终端。

我对么?

答案1

该语句正确地描述了标称情况:打开终端,在该终端的自己的会话中运行 shell,然后从 shell 运行更多程序。您是正确的,该陈述一般来说是不正确的:任何进程都可以从任何地方发送输出和接收输入,而不仅仅是会话的控制终端。 Shell 重定向是使进程的标准输入或输出成为终端以外的内容的最常见方法。

不要指望教程能够涵盖所有情况。如果真是这样,那就难以理解了。

相关内容