Linux

文件描述符連結到 proc 中的套接字或管道

  • September 14, 2012

可能重複:

/proc/PID/fd/X 連結號

我對 proc 文件系統中的文件描述符及其連結有疑問。我觀察到,如果我從 proc 中列出某個程序的文件描述符,ls -la /proc/1234/fd我會得到以下輸出:

 lr-x------ 1 root   root   64 Sep 13 07:12 0 -> /dev/null
 l-wx------ 1 root   root   64 Sep 13 07:12 1 -> /dev/null
 l-wx------ 1 root   root   64 Sep 13 07:12 2 -> /dev/null
 lr-x------ 1 root   root   64 Sep 13 07:12 3 -> pipe:[2744159739]
 l-wx------ 1 root   root   64 Sep 13 07:12 4 -> pipe:[2744159739]
 lrwx------ 1 root   root   64 Sep 13 07:12 5 -> socket:[2744160313]
 lrwx------ 1 root   root   64 Sep 13 07:12 6 -> /var/lib/log/some.log

我得到了文件描述符的含義,我從我的範例中理解了文件描述符 0 1 2 和 6,它們與我電腦上的物理資源相關聯,而且我猜 5 連接到網路上的某些資源(因為socket),但我不明白括號中數字的含義。指向資源的某些屬性嗎?另外,為什麼有些連結壞了?最後,只要我已經問過一個問題 :) 什麼是管道?

它們是否指向資源的某些屬性?

是的。它們是允許您辨識資源的唯一標識符。

另外,為什麼有些連結壞了?

因為它們是指向不存在於文件系統中的想法的連結,所以您無法以正常方式訪問該連結。從本質上講,連結被濫用作為返回資源類型和唯一標識符的一種方式。

什麼是管道?

顧名思義,管道是兩點之間的連接,任何放在一端的東西都會從另一端出來。

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