现在我正计划用C/C++编写一个小服务器。该软件的目标将是某种类型的linux服务器,所以我认为在linux上对服务器进行编程将是最好的想法。问题是,我有一台MacBook (Air),我设置了一台Linux,但是集成开发环境(Qt creator)把我吓坏了,所以我考虑在Xcode中开发服务器,然后在VM中编译完它。所以我想知道当涉及到pthread和socket.h时,可移植性的等级有多高?如果它们可以移植到某个级别,您会推荐我使用Xcode进行开发吗?(我对Xcode比较熟悉,因为服务器的客户端将是一个iOS应用程序。很抱歉我的英语很差(我来自GER),并(可能)感谢您的评论:)
发布于 2012-12-15 22:15:30
您可以使用第三方库,例如boost,它抽象出threading library和socket library的特定于平台的细节。boost支持Linux和Mac OS X操作系统。
我的答案是c++特定的,我看到你也用c标记了这个问题。
发布于 2012-12-16 00:44:12
尽管使用Boost可能会让您的工作更轻松,但为了回答这个问题,<pthread.h>和<sys/socket.h>都是标准的POSIX头文件,并且可以在Mac和GNU/Linux等POSIX系统之间移植。GNU头中可能有一些东西是非标准的扩展,或者是较新POSIX的一部分,所以Mac不支持,但是在Mac上可用的<pthread.h>和<sys/socket.h>中的几乎所有东西在GNU/Linux上也是可用的,并且工作方式相同。要确定,请阅读函数的手册页或在线查看Single UNIX Specification (该链接用于Mac支持的较旧版本的POSIX,GNU/Linux主要符合最新的POSIX 2008规范),以确保您只使用可移植的POSIX特性,而不是特定于平台的特性。
请参阅和
请注意,Mac OS X支持基本POSIX规范,但不是所有可选部分,例如,它不支持POSIX 2001的“定时器”选项(这是基本规范的一部分,即在POSIX-2008中不是可选的)
https://stackoverflow.com/questions/13892903
复制相似问题