代码之家  ›  专栏  ›  技术社区  ›  Spring fancy

为什么linux中不混合标准输入?

  •  -2
  • Spring fancy  · 技术社区  · 6 年前

    我们知道,每个流程都预先设置了三个描述符:

    0 (stdin), 1 (stdout), 2 (stderr)

    为什么? stdin 不同流程之间是否混合?毕竟,每个进程都有相同的描述符,等于 0 . 有人能解释一下吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   ikegami    6 年前

    每个进程都有自己的一组文件描述符。一个进程的文件描述符0不一定引用与另一个进程的文件描述符0相同的文件句柄。

    内存地址也是如此。由于内存虚拟化,每个进程都有自己的地址空间。不同的进程可以将同一地址用于不同的目的。