我想设置mtu或获取一些设备详细信息,但我不想使用
系统(“ifconfig…”)。
在C语言里有什么办法吗?比如libifconfig.so?
mtu的源代码可以找到here
但我现在真的没有太多时间。如何获得所有可用接口的名称(我的系统中有很多接口)

最佳答案

它可以用ioctl来完成。见netdevice(7)。我猜SIOCGIFMTUSIOCSIFMTU是你要找的。我不知道它是否是标准的,如果需要支持其他unix,请更新您的问题。
编辑
要获取计算机上的接口(未测试):

int sock;
struct ifconf *conf;

sock = socket(AF_INET, SOCK_STREAM, 0);
ioctl(sock, SIOCGIFCONF , (char*) conf);

别马虎,别忘了检查返回值。我不检查是因为我不在乎,你可能会。

关于c - 是否有任何包含用于ifconfig API的C库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6049585/

10-11 22:08