我需要使用路由套接字安装什么软件包?

我正在尝试由Richard Stevens在Unix Network Programming中给出的代码。 但我无法获得编译的代码。

这里是源代码。 http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15213-f00/unpv12e/libroute/

我没有头文件net / if_dl.h和net / route.h头文件不包括代码使用的常量和结构。

Solutions Collecting From Web of "我需要使用路由套接字安装什么软件包?"

这是一个特定于BSD的API,而linux不支持它。 netlink套接字家族提供等效的功能(不是源兼容的)。 “man 7 netlink”应该让你开始,但你可能需要做一些移植工作。

请注意,你不需要在该文件夹“libroute”

见文件:

cd ../libroute # only if your system supports 4.4BSD style routing sockets make # only if your system supports 4.4BSD style routing sockets cd ../libxti # only if your system supports XTI make # only if your system supports XTI 

Linux不是BSD风格路由,只要去../intro并建立例子〜!

我现在不在机器上,我可以帮忙。 如果您的发行版使用yum (例如RHEL):

 yum provides if_dl.h 

或者如果你使用apt (例如Ubuntu / Debian):

 sudo apt-get install apt-file sudo apt-file update apt-file search if_dl.h 

如果已经安装了apt-file ,那么第一步就不是必须的了,而且我不记得第二个是什么。 另外,我相信两个软件包管理员都可以使用文件名和全路径。

希望这会为你或其他人阅读这个工作,你会得到你的答案!

尝试从网上复制一个if_dl.h,并把它放在/ usr / include / net中。 可能是有效的,也许它需要其他的库。 也许我的英语不太好 原谅我。