What package do i need to install for using routin

2019-01-23 19:46发布

i am trying code given in Unix Network Programming by Richard Stevens. but i am not able to get the code to compile.

here is the source code. http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15213-f00/unpv12e/libroute/

i don't have the header file net/if_dl.h and the net/route.h header file does not include the constants and structures that the code uses.

4条回答
Viruses.
2楼-- · 2019-01-23 20:44

I'm not on a machine where I can do this right now, but perhaps I can still help. If your distribution uses yum (e.g. RHEL):

yum provides if_dl.h

Or if you use apt (e.g. Ubuntu/Debian):

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

If apt-file is already installed, the first step won't be necessary, and I can't remember for sure if the second is. Also, I believe both package managers work both with filename and with full path.

Hopefully this will work for you or someone else reading this, and you'll get your answer!

查看更多
啃猪蹄的小仙女
3楼-- · 2019-01-23 20:46

Please note, you DO NOT need to make in that folder "libroute"

See the Document:

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 is not BSD style routing, just go to ../intro and build examples~!

查看更多
何必那么认真
4楼-- · 2019-01-23 20:51

That is a BSD-specific API, and linux doesn't support it. The equivalent functionality (not source-compatible) is provided by the netlink socket family. "man 7 netlink" should get you started, but you're likely going to need to do some porting work.

查看更多
放我归山
5楼-- · 2019-01-23 20:51

try to copy a if_dl.h from net , and put it in /usr/include/net . may be it works and maybe it needs other libs. Maybe my English is not so good . Forgive me.

查看更多
登录 后发表回答