为什么 linux 中没有混合标准输入?
Why standard inputs are not mixed in linux?
我们知道每个进程都预先设置了三个描述符:
0 (stdin), 1 (stdout), 2 (stderr)
为什么stdin
不同进程之间不能混用?毕竟,每个进程都有相同的描述符等于0
。谁能解释一下?
每个进程都有自己的一组文件描述符。一个进程的文件描述符 0 不一定引用与另一进程的文件描述符 0 相同的文件句柄。
内存地址也是如此。因为内存虚拟化,每个进程都有自己的地址space。不同的进程可以将相同的地址用于不同的目的。
我们知道每个进程都预先设置了三个描述符:
0 (stdin), 1 (stdout), 2 (stderr)
为什么stdin
不同进程之间不能混用?毕竟,每个进程都有相同的描述符等于0
。谁能解释一下?
每个进程都有自己的一组文件描述符。一个进程的文件描述符 0 不一定引用与另一进程的文件描述符 0 相同的文件句柄。
内存地址也是如此。因为内存虚拟化,每个进程都有自己的地址space。不同的进程可以将相同的地址用于不同的目的。