用C代码管理Linux网络接口

7

我正在寻找一种在C中可用于管理Linux机器网络接口的函数/系统调用。例如,我想执行 ip link set wlan0 down(或up) 或 ifconfig wlan0 down,除了system(),还可以使用哪个函数呢?


6
一个很好的起点可能是查看ifconfig本身是如何做到的 - 你可以在这里找到源代码:http://sourceforge.net/projects/net-tools/。 - CmdrMoozy
2
此外,DBUS NetworkManager API - Steve-o
2个回答

4

要从软件中访问由iproute2工具提供的功能,您可以使用Linux rtnetlink API。为了使您更容易实现此目的,您可以使用像libnl这样的库。

如果您遇到问题,已经有一个名为netlink的标签可供参考。


libnl的链接已经过期。我认为这是正确的链接:https://github.com/thom311/libnl - Matthew McMillan

-3

使用系统调用执行类似于在命令行上执行命令的操作。

#include <stdlib.h>

int system(const char *command);

man page

该函数用于在调用进程中执行命令。参数command是一个指向要执行的命令字符串的指针。如果成功执行,则返回命令的退出状态码,否则返回-1。

man page


3
我相信@angs明确表示他需要与system()不同的东西 ;) - cgledezma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接