17

每个进程都有自己的标准输入、标准输出和标准错误,还是它们只共享 1 个标准输入、1 个标准输出和 1 个标准错误?我的意思当然是每台计算机通常有 1 个键盘和 1 个终端,但是进程的输入和输出流是否相互分离?

4

1 回答 1

20

stdout, stdin, 和stderr只是操作环境赋予过程以与其输入和输出交互的抽象。尽管只有一个键盘(在大多数情况下,无论如何),操作系统知道如何决定哪个进程获取当前输入,并将击键传递给stdin该进程的。类似地,尽管只有一个屏幕,但它可以被分割成几个窗口。最后,许多进程的输入和输出都与文件流相关联。操作系统可以让您将多个进程绑定到单个输入或单个输出文件,但即使在这种情况下,代表stdinstdout进程内的流将是分开的:它们将引用操作系统中的相同对象,并且操作系统将管理在其用户之间共享该对象。

于 2012-08-08T11:10:41.187 回答