Sysfs

從 sysfs 獲取資訊

  • August 14, 2014

我正在創建一個腳本來輪詢有關網路介面的資訊。為此,我從/sysfs.

一切都很順利,直到我想澄清介面的所有可能狀態(順便說一句,它們是什麼?我現在只知道關於up,downunknown)。我通過/usr/src/linux/Documentation/sysfs-rules.txt並發現了這個:

訪問 /sys/class/net/eth0/device 是應用程序中的一個錯誤

是否有一個原因?如果我通過獲取資訊做錯了什麼,有人可以解釋我/sysfs嗎?

我不會遍歷所有介面,/sysfs而是使用getifaddrs(3). 也許還有另一種方法可以獲取 iface 狀態?謝謝。

device是您不應該使用的類目錄中的連結。這個想法是/sys/class/net/eth0一個符號連結到下面的某個地方/sys/devices,並且該device連結僅連結到(大)*父目錄;device如果需要,您應該返回父目錄,而不是使用該連結。

訪問文件/sys/class/net/eth0/很好。

如果您指的是 中的執行狀態/sys/class/net/eth0/operstate,還有更多。名稱在 中定義,net/core/net-sysfs.c常量在中定義include/uapi/linux/if.h。它們來自RFC 2863

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