在 Linux 中,为什么所有进程都有一个全局 /dev/stdin 文件?

In Linux, why is there a global /dev/stdin file for all processes?

不同进程的标准输入不应该是唯一的吗?如果是这样,stdin 文件的路径不应该像 /dev/pid/stdin 而不是全局 /dev/stdin 吗?

有人对此有想法吗?

/dev/stdin 是独一无二的,因为

  • 它是一个符号link到/proc/self/fd/0
  • /proc/self 是一个符号 link 只有 被你的 运行 进程看到 its进程号

/proc文件系统是一个虚拟(不是真实) 能够向每个进程显示不同视图的文件系统。

进一步阅读: