UVV*_*UVV 7 sysfs network-interface
我正在创建一个脚本来轮询有关网络接口的信息。为此,我从/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
链接仅链接到 (grand-) *父目录;device
如果需要,您应该回到父目录而不是使用链接。
访问文件/sys/class/net/eth0/
很好。
如果您指的是在 中找到的操作状态/sys/class/net/eth0/operstate
,还有更多。名称在 中定义,net/core/net-sysfs.c
常量在 中include/uapi/linux/if.h
。它们来自RFC 2863。