1

现在我正计划用 C/C++ 编写一个小服务器。该软件的目标将是某种 linux 服务器,所以我认为在 linux 上编程服务器将是最好的主意。问题是,我拥有一台 MacBook(Air)并且我设置了一个 Linux VM,但是 IDE(Qt 创建者)吓坏了我,所以我考虑在 Xcode 中开发服务器,然后在完成编译后在虚拟机。所以我想知道 pthread 和 socket.h 的可移植性等级有多高?如果它们可以移植到某个等级,你会推荐我在 Xcode 中开发吗?(我对 Xcode 很熟悉,因为服务器的客户端将是一个 iOS 应用程序。抱歉我的英语不好(我来自德国)和(可能)感谢您的评论 :)

4

2 回答 2

3

您可以使用第三方库,例如boost抽象出线程库套接字库的平台特定细节。boost 都支持 Linux 和 Mac OS X 操作系统。

我的回答很c++具体,我看到你也标记了这个问题c

于 2012-12-15T14:15:29.663 回答
0

尽管使用 Boost 可能会让您的生活更轻松,但要回答这个问题<pthread.h><sys/socket.h>它既是标准的 POSIX 头文件,又可以在 Mac OS X 和 GNU/Linux 等 POSIX 系统之间移植。GNU 标头中可能有些东西是非标准扩展或较新 POSIX 的一部分,因此不受 Mac OS X 支持,但几乎所有在Mac OS X<pthread.h><sys/socket.h>可用的东西在 GNU/Linux 上也可用并且可以工作相同。可以肯定的是,通过阅读函数的手册页或在线查看Single UNIX Specification(该链接适用于 Mac OS X 的旧版本 POSIX支持,GNU/Linux 大多符合最新的POSIX 2008规范。)

<sys/socket.h><pthread.h>

请注意,Mac OS X 支持基本 POSIX 规范但不是所有可选部分,例如它不支持 POSIX 2001 的“计时器”选项(这是基本规范的一部分,即在 POSIX-2008 中不是可选的)

于 2012-12-15T16:44:11.847 回答