views:

136

answers:

2

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.

+1  A: 

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!

Jefromi
i am on suse 11
iamrohitbanga
+2  A: 

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.

Andy Ross