What package do i need to install for using routing sockets?

前端 未结 5 1147
小鲜肉
小鲜肉 2020-12-09 21:59

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

相关标签:
5条回答
  • 2020-12-09 22:22

    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!

    0 讨论(0)
  • 2020-12-09 22:29

    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.

    0 讨论(0)
  • 2020-12-09 22:41

    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
    
    0 讨论(0)
  • 2020-12-09 22: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~!

    0 讨论(0)
  • 2020-12-09 22:47

    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.

    0 讨论(0)
提交回复
热议问题