【问题标题】:Is the data structure union sockunion only for FreeBSD or also for Linux?数据结构 union sockunion 是仅适用于 FreeBSD 还是适用于 Linux?
【发布时间】:2016-04-27 15:49:12
【问题描述】:

数据结构union sockunion 仅适用于 FreeBSD 还是也适用于 Linux?如果它仅适用于 FreeBSD,那么 Linux 中的等价物是什么? 谢谢!

【问题讨论】:

    标签: c linux sockets freebsd


    【解决方案1】:

    FreeBSD 的 /usr/include 中也没有公开它,尽管它存在于 libc 的内部源代码中。

    其他一些软件,比如 Zebra 也发布了它。

    你是怎么发现的?

    【讨论】:

    • 有些人为 FreeBSD 开发了一个应用程序,我需要让它在 linux 上运行。谢谢!
    • @Pheonix7: 并且应用源中没有定义 union sockunion ?
    • 是的,它定义为:union sockunion { struct sockaddr sa;结构 sockaddr_in 罪;结构 sockaddr_in6 sin6;结构 sockaddr_storage ss; };我可以像在 linux 中一样使用它吗?
    • 我确实在我的 linux 系统上启动了这个应用程序,似乎 sockunion 工作正常。在调试时我可以看到正确的地址值。这怎么可能?这是否意味着我可以离开它并且它会起作用。考虑到背后有很多代码,如果我不得不更改它,我会知道从哪里开始。欣赏它
    • @Pheonix7:是的,如果在你的源代码中定义了联合,你应该可以按原样使用它。这是可能的,因为它所包含的所有结构都存在于 Linux 和 FreeBSD 中。
    猜你喜欢
    • 1970-01-01
    • 2021-12-02
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多