POSIX 是规定性的还是描述性的?

ImH*_*ere 3 posix

POSIX 是对应用程序过去如何实现 UNIX 的每个特定部分的描述,还是必须如何实现 UNIX 的规定性规范?

如果是描述性的,则只有所有包含的实现共有的功能才是有效的。虽然任何实现都没有实现某个功能,但该功能是“未定义的”。

如果是规定性的:它基于哪个理论框架?数学?C语言?经验?

Gil*_*il' 7

这是法律上的规定,但主要是事实上的描述。

POSIX 是一组可以匹配实现的规范,包括发布文档时已经存在的实现和未来的实现。所以它是规定的。

在实践中,POSIX 最初主要是作为现有实现的一个公共子集。所以从这个意义上说,它主要是描述性的。但是 POSIX 有时会要求新的行为。最常见的是,对于存在于许多实现中但具有不同接口(函数名称、命令行选项等)的特性,POSIX 引入了几个函数和实用程序,例如pax(替代tarcpio,它们在 Unix 变体中非常不同)以及各种posix_xxx功能。POSIX 还引入了新的常量和命令行选项;例如,对于ps“该-A选项等效于 BSD-g和 SVID-e. 由于两个系统不同,因此选择了一种助记折衷方案。”。基本原理部分通常解释为什么要包含这个或那个特性,经常提到哪些实现已经有一个特性,或者为什么在不兼容的实现之间做出选择。