Linux
文件描述符連結到 proc 中的套接字或管道
可能重複:
我對 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),但我不明白括號中數字的含義。指向資源的某些屬性嗎?另外,為什麼有些連結壞了?最後,只要我已經問過一個問題 :) 什麼是管道?
它們是否指向資源的某些屬性?
是的。它們是允許您辨識資源的唯一標識符。
另外,為什麼有些連結壞了?
因為它們是指向不存在於文件系統中的想法的連結,所以您無法以正常方式訪問該連結。從本質上講,連結被濫用作為返回資源類型和唯一標識符的一種方式。
什麼是管道?
顧名思義,管道是兩點之間的連接,任何放在一端的東西都會從另一端出來。