本节书摘来自异步社区《UNIX环境高级编程(第3版)》一书中的第2章,第2.4节,作者:【美】W. Richard Stevens , Stephen A.Rago著,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.4 标准和实现的关系
前面提到的各个标准定义了任一实际系统的子集。本书主要关注4种实际的UNIX系统:FreeBSD 8.0、Linux 3.2.0、Mac OS X 10.6.8和Solaris 10。在这4种系统中,虽然只有Mac OS X 和Solaris 10 能够称自己是一种UNIX系统,但是所有这4种系统都提供UNIX编程环境。因为所有这4种系统都在不同程度上符合POSIX标准,所以我们也将重点关注POSIX.1标准所要求的功能,并指出这4种系统具体实现与POSIX之间的差别。仅仅一个特定实现所具有的功能和例程会被清楚地标记出来。我们还关注那些属于UNIX系统必需的,但却在符合POSIX标准的系统中是可选的功能。
应当看到,这些实现都提供了对它们早期版本(如SVR3.2和4.3BSD)功能的向后兼容性。例如,Solaris对POSIX.1规范中的非阻塞I/O(O_NONBLOCK)以及传统的系统V中的方法(O_NDELAY)都提供了支持。本书将只使用POSIX.1的功能,但是也会提及它所替换的是哪一种非标准功能。与此相类似,SVR3.2和4.3BSD以某种方法提供了可靠的信号机制,这种方法也有别于POSIX.1标准。第10章将只说明POSIX.1的信号机制。