Sysfs
從 sysfs 獲取資訊
我正在創建一個腳本來輪詢有關網路介面的資訊。為此,我從
/sysfs
.一切都很順利,直到我想澄清介面的所有可能狀態(順便說一句,它們是什麼?我現在只知道關於
up
,down
和unknown
)。我通過/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。