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

标签 c linux networking routes

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

最佳答案

您还可以运行“strace route add ...”来查看 route 命令是如何执行的。

在我的系统上,它使用 ioctlSIOCADDRT。稍微搜索一下就会发现一些 sample code .

奇怪的是,我找到的最好的文档来自 IBM's AS400 man pages .

如果只想读取路由表,可以打开读取/proc/net/route。 (同样,strace 表明这就是 route 命令的工作方式。)十六进制数是机器端格式的 32 位 IP 地址。试试 cat/proc/net/route

关于我可以在不使用 system() 命令的情况下在 C 中读/写路由表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6358431/

相关文章:

python celery 没有名为 app.tasks 的模块

networking - 尝试连接到自身时,带有 Docker 的 Centos VM 无法访问主机

c++ - 在Linux中,当同一套接字上的accept()调用正在进行时,套接字描述符在某些条件下从另一个线程关闭?

c - 如何知道C中的行尾

c - 使用 fork() 的 Linux 进程树

linux shell 在空参数上测试 `-d`

linux - 设置Linux中进程的阈值

linux - 阻止 RHEL 上所有可能的子域的所有流量?

c - 为什么 strerror 不返回一个 const 限定的指针?

c - C shell 中的错误文件描述符问题