以编程方式在C中检查NIC在';它在linux中的应用
有没有办法检查我的NIC(已关闭)的链接是否良好 用C语言发送/接收帧 我试着分别检查正在运行的以编程方式在C中检查NIC在';它在linux中的应用,c,linux,linux-kernel,network-programming,ioctl,C,Linux,Linux Kernel,Network Programming,Ioctl,有没有办法检查我的NIC(已关闭)的链接是否良好 用C语言发送/接收帧 我试着分别检查正在运行的IFF\u和ETHTOOL\u GLINK 通过带有ioctl的SIOCGIFFLAGS和SIOCETHTOOL),但他们仅设置此项 NIC启动时的信息 我还试图直接检查/sys/class/net/XXX/carrier文件,但是 读取文件时,我总是得到一个无效参数 有人知道NIC关闭时获取此信息的方法吗?如果可用,您可以调用mii工具获取此信息。一些驱动程序会在界面关闭时报告状态,但许多(大多数?
IFF\u和ETHTOOL\u GLINK
通过带有ioctl的SIOCGIFFLAGS
和SIOCETHTOOL
),但他们仅设置此项
NIC启动时的信息
我还试图直接检查/sys/class/net/XXX/carrier
文件,但是
读取文件时,我总是得到一个无效参数
有人知道NIC关闭时获取此信息的方法吗?如果可用,您可以调用mii工具获取此信息。一些驱动程序会在界面关闭时报告状态,但许多(大多数?)不会
(它使用SIOCGMIIPHY
和SIOCGMIIREG
ioctls)。可能通过/proc/
中的某个文件?请阅读抱歉的迟交的答案。到目前为止我什么也没找到/proc/net/dev
有一些关于设备的统计信息,但我没有看到任何可以用来猜测链接状态的信息。还有其他想法吗?它在我的嵌入式linux上可以工作,但在我的Fedora18桌面上不行(不记得NIC驱动程序了)。我不确定后一个结果是否有效,因为当我关闭NIC时,开关指示灯也会熄灭。。也许NIC真的失去了这次事件中的链接。在其他一些情况下,对于非MII接口,ioctl只返回ENOTSUP
。我将在这些电话中尝试更多的样品。非常感谢。