Open-Files

文件描述符和 /dev/fd

  • December 16, 2011

文件描述符在整個程序或整個系統中是唯一的。因為每個文件似乎都對標準輸入和標準輸出使用相同的描述符。這些有什麼特別的嗎?標準輸入和標準輸出如何工作?我意識到dev/fd, 是指向 的連結proc/self/fd,但是它們怎麼都具有相同的編號?

編輯: 即使在查看其他程序之後,大多數文件描述符的數字也大致相同。

這裡有幾件事可能令人困惑。

文件描述符附加到文件(一般意義上)並且特定於給定程序。文件描述符本身通過相關程序通過數字 id 引用,但一個文件描述符可以有多個 id。範例:被稱為標準輸出和標準錯誤的 ids 1 和 2 通常指的是同一個文件描述符。

符號連結/proc/pid/fd/x僅提供有關程序pid的**x文件描述符連結到的內容的提示。如果它是一個正常文件,符號連結會給出它的路徑。但是如果文件描述符是例如 inet 套接字,那麼符號連結就被破壞了。對於正常文件(或具有 tty 之類的路徑的文件),可以打開它,但您將獲得同一個對象的不同文件描述符。

引用自:https://unix.stackexchange.com/questions/26926