文件描述符在整个进程或整个系统中是唯一的。因为每个文件似乎都对 stdin 和 stdout 使用相同的描述符。这些有什么特别之处吗?标准输入和标准输出如何工作?我意识到dev/fd
, 是指向 的链接proc/self/fd
,但是它们如何具有相同的编号?
编辑: 即使在查看其他进程后,大多数文件描述符的数字也大致相同。
这里有几件事可能会令人困惑。
Filedescriptors 附加到文件(在一般意义上)并且特定于给定的进程。文件描述符本身由其关联进程通过数字 id 引用,但一个文件描述符可以有多个 id。示例:ids 1 和 2 被称为标准输出和标准错误通常指的是同一个文件描述符。
符号链接/proc/pid/fd/x
仅提供进程pid的x文件描述符链接到的提示。如果它是一个普通文件,符号链接会给出它的路径。但是如果文件描述符是一个 inet 套接字,那么符号链接就被破坏了。对于常规文件(或具有类似 tty 路径的文件),可以打开它,但您将获得同一对象的不同文件描述符。
归档时间: |
|
查看次数: |
2587 次 |
最近记录: |