假设我有process 1和process 2。两者都有一个对应于整数 4 的文件描述符。
然而,在每个进程中,文件描述符 4 指向内核打开文件表中的一个完全不同的文件:
这怎么可能?文件描述符不应该是打开文件表中记录的索引吗?
文件描述符在整个进程或整个系统中是唯一的。因为每个文件似乎都对 stdin 和 stdout 使用相同的描述符。这些有什么特别之处吗?标准输入和标准输出如何工作?我意识到dev/fd
, 是指向 的链接proc/self/fd
,但是它们如何具有相同的编号?
编辑: 即使在查看其他进程后,大多数文件描述符的数字也大致相同。