Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在不使用system()命令的情况下用C读/写路由表吗?_C_Linux_Networking_Routes - Fatal编程技术网

我可以在不使用system()命令的情况下用C读/写路由表吗?

我可以在不使用system()命令的情况下用C读/写路由表吗?,c,linux,networking,routes,C,Linux,Networking,Routes,我有用C编写的代码。我想使用存储在路由表中的C代码信息来获取。有可能吗?您可以打开netlink套接字并发送路由更新消息。这里介绍了如何执行此操作。您还可以运行“strace route add…”来查看route命令如何执行此操作 在我的系统上,它使用ioctl和siocadrt。稍微搜索一下就会发现一些 奇怪的是,我找到的最好的文档来自 如果您只想读取路由表,可以打开并读取/proc/net/route。(同样,strace显示了route命令就是这样做的。)十六进制数是机器端形式的32位I

我有用C编写的代码。我想使用存储在路由表中的C代码信息来获取。有可能吗?

您可以打开netlink套接字并发送路由更新消息。这里介绍了如何执行此操作。

您还可以运行“strace route add…”来查看
route
命令如何执行此操作

在我的系统上,它使用
ioctl
siocadrt
。稍微搜索一下就会发现一些

奇怪的是,我找到的最好的文档来自


如果您只想读取路由表,可以打开并读取
/proc/net/route
。(同样,
strace
显示了
route
命令就是这样做的。)十六进制数是机器端形式的32位IP地址。尝试
cat/proc/net/route

如果只想查询路由表,请尝试读取文件
/proc/net/route
。它在我的系统中工作

如果这是不可能的,您认为
route
命令是如何做到的?ioctl似乎没有查询路由的选项。SIOCADDRT写入内核表。我只需要阅读你问题的标题“修改”。一旦我发送了getroute消息,我不知道回复中会出现什么结构,有什么帮助吗?