如何以编程方式编辑路由表

Mat*_*ith 6 c linux networking

我正在编写一个在嵌入式平台上运行的守护进程,该平台需要根据它在给定时间连接的接口来更改设备的默认路由.我怎么能以编程方式执行此操作?我知道我可以使用system("route del default && route add default gateway blah"); 等,但有更直接的方式吗?

更新:我通过发现一个允许replacedefaultroute选项的pppd补丁解决了我的特殊问题.该补丁还包括用于以编程方式修改路由表的代码.它包含在这个gentoo错误报告http://bugs.gentoo.org/227321中

Lan*_*son 7

查看SIOCADDRT/SIOCDELRT ioctls(史蒂文斯的"Unix网络编程"将是一个很好的参考.)