我在学校有一门课,我们在 Linux 下使用 C/C++ 编写代码。我们主要使用线程、信号量、进程(fork()、pipes() 等)、IPC 来开发服务器/客户端应用程序。我有一台 MacBook,我真的不想强制它运行 Ubuntu(我们在学校使用它),所以我想问一下我可以在 Mac 上开发,然后将代码带到 Linux 上并用 g++ 编译吗?
目前我能够这样做,但我不确定将来是否会遇到问题。例如,在 Windows 下,forks 和 sockets 以完全不同的方式完成,所以我只想知道差异在哪里(OS X 与 Ubuntu)以了解我需要在 Linux 下编写特定代码。
最佳答案
OS X 基于 Unix(如 Linux)并遵循 POSIX(在某种程度上)。如果您使用 OS X 中可用的 POSIX 函数,则在 Linux 下运行代码时应该没有(或最少)问题。
但反之则不然,因为 Linux 在更高程度上遵循 POSIX 并且(几乎)符合最新的 POSIX 标准,而 OS X 不支持较新的版本。此外,GNU 对 POSIX 工具和库有许多扩展,这些扩展可能在 OS X 上不可用。
简而言之,在 Linux 下,您可以使用更新的和功能丰富的库。然而,在 OS X 中发现的 POSIX 的古老功能在 Linux 中也可用。所以一般来说应该没有问题,只要你坚持标准的行为。
关于c++ - OS X 和 Linux (C/C++) 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22759016/