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.
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):Or if you use
apt
(e.g. Ubuntu/Debian):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!
Please note, you DO NOT need to make in that folder "libroute"
See the Document:
Linux is not BSD style routing, just go to ../intro and build examples~!
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.
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.