编程MacOS-X和Linux API - POSIX兼容吗?

时间:2012-01-26 03:49:38

标签: c linux macos

我正在学习(刚刚完成)C +算法并且是新手。我想知道是否在Mac上使用POSIX Linux API。 Linux具有pread pwrite readv writev nftw symlink pipe popen posix_self sigprocmask sigaction(系统调用)等功能。 Mac有相同的API ??我听说OS-X是基于BSD内核的,所以我想知道如果我坚持只使用POSIX功能,我是否可以在OS-X上使用Linux上编写的代码。 OS-X API与Linux POSIX / SUSv3 API有多相似?

3 个答案:

答案 0 :(得分:0)

The Wikipedia article on POSIX有一节致力于合规性。简短的回答:是的,它将具有你可能遇到的所有POSIX功能。它可能会有更多(例如很多BSD apis可能实际上不是POSIX)

答案 1 :(得分:0)

如果您在询问是否可以编写适用于两种平台的代码,答案是肯定的。如果你问这是否容易,答案可能是否定的。

POSIX不是Linux标准,但是Linux也跟着它,OSX,BSD,HPUX,Solaris,甚至是像QNX这样的实时操作系统(仅举几例)。

如果您尽可能编程到POSIX API,移植代码会更容易。

答案 2 :(得分:0)

他们关闭。有一些你在Linux上找不到的BSD东西,以及你在BSD上找不到的一些Linux东西。您几乎总能将自己局限于与两个平台兼容的子集,而不会有太多麻烦。不可移植的POSIX API通常被赋予_np指示符。您还会发现某个平台上尚未支持某些内容。更成熟的API有一个安全的中间立场。当然,这可能因您定位的操作系统版本而异。如果您徘徊不太常见的API,实现可能略有不同。我的第一站是查看man页。