pthread和socket.h的可移植性

时间:2012-12-15 14:07:36

标签: c++ c sockets pthreads portability

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

2 个答案:

答案 0 :(得分:3)

您可以使用boost等第三方库来抽象threading librarysocket library的平台特定详细信息。升级支持Linux和Mac OS X操作系统。

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

答案 1 :(得分:0)

尽管使用Boost可能会让您的生活更轻松,但回答问题<pthread.h><sys/socket.h>都是标准的POSIX标题,并且可以在POSIX系统(如Mac OS X和GNU / Linux)之间移植。 GNU标题中可能存在非标准扩展或新POSIX的一部分,因此Mac OS X不支持,但Mac OS上提供的<pthread.h><sys/socket.h>几乎所有内容都不支持X也可以在GNU / Linux上使用并且工作原理相同。要确定,通过阅读函数的手册页或在线查看Single UNIX Specification(该链接是用于旧版本的POSIX,确认您只使用便携式POSIX功能而非平台特定功能) OS X支持,GNU / Linux大多符合最新的POSIX 2008规范。)

请参阅<sys/socket.h><pthread.h>

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