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/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!
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.
As explained in https://ubuntu.pkgs.org/16.04/ubuntu-universe-amd64/freebsd-glue_0.2.20_amd64.deb.html just install freebsd-glue deb package:
sudo apt-get install freebsd-glue
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~!
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.