我想设置mtu或获取一些设备详细信息,但我不想使用
系统(“ifconfig…”)。
在C语言里有什么办法吗?比如libifconfig.so?
mtu的源代码可以找到here。
但我现在真的没有太多时间。如何获得所有可用接口的名称(我的系统中有很多接口)
最佳答案
它可以用ioctl
来完成。见netdevice(7)
。我猜SIOCGIFMTU
和SIOCSIFMTU
是你要找的。我不知道它是否是标准的,如果需要支持其他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/