Mac/IOS 是否使用与 Linux 内核相同的 sys/socket.h?

nte*_*rry 5 c++ sockets linux macos

我将把 39dll 库移植到 Linux。这个库已经被移植到 Mac 和 IOS 上,我想知道 sys/socket.h 的东西是否需要重写。您可以在此处此处找到有问题的库

有人知道吗?我已经做了一些谷歌搜索,并查看了一些“建议”文章,但没有结果。有些文章建议它“可能”有效,但我需要更明确的答案。

bam*_*s53 3

您是否想问 Mac OS X 的内容<sys/socket.h>与 Linux 的版本是否相同?不,Mac OS X 的标头是基于 BSD 的。

> man socket

SOCKET(2)                   BSD System Calls Manual                  SOCKET(2)

NAME
     socket -- create an endpoint for communication

SYNOPSIS
     #include <sys/socket.h>

     int
     socket(int domain, int type, int protocol);

DESCRIPTION
     Socket() creates an endpoint for communication and returns a descriptor.

     The domain parameter specifies a communications domain within which com-
Run Code Online (Sandbox Code Playgroud)

如果您询问两个平台之间是否存在源代码兼容性,那么是的,只要源代码坚持可移植接口即可。

如果您正在考虑可能需要重写套接字内容的其他原因,我想这取决于您当前的代码在为 OS X 构建时是否满足您的要求。