OS X和Linux之间的差异(C / C ++)

时间:2014-03-31 10:17:26

标签: c++ c linux ipc

我在学校有一门课程,我们用Linux下的C / C ++编写代码。我们主要使用线程,信号量,进程(fork(),pipes()等),IPC进行服务器/客户端应用程序。我有一台MacBook,我真的不想强迫它运行Ubuntu(我们在学校使用),所以我想问我可以在Mac上开发,然后把代码带到Linux并用g ++编译吗?

现在我能够这样做,但我不确定将来是否会遇到问题。例如,在Windows for the forks和套接字以完全不同的方式完成,所以我只想知道差异在哪里(OS X与Ubuntu),以便知道我需要在Linux下编写特定代码。

2 个答案:

答案 0 :(得分:1)

OS X是基于Unix的(如Linux),并且遵循POSIX(在某种程度上)。如果您使用OS X中提供的POSIX函数,则在Linux下运行代码时应该没有(或最少)问题。

相反的情况并非如此,因为Linux遵循POSIX的程度要高得多,并且(几乎)符合最新的POSIX标准,而OS X不支持更新的版本。此外,GNU对POSIX工具和库有很多扩展,可能在OS X上不可用。

简而言之,在Linux下,您可以使用更多最新且功能丰富的库。但是,在OS X中找到的POSIX的老旧功能也可以在Linux中使用。所以一般来说,只要你坚持标准行为就不会有问题。

答案 1 :(得分:1)

两者都是类UNIX环境。因此,只要您的代码遵循POSIX标准,您就不应该遇到麻烦。但是,我强烈建议您在开发的不同阶段在Ubuntu上测试代码。但是,不要指望在Linux下找到Apple库调用(反之亦然)。