我知道最新版本的 POSIX 指定应(可选)存在并调用符合 C99 的编译器c99
。类似地,旧版本的 POSIX 用于指定c89
作为“C 语言开发实用程序”的一部分存在的可选命令。
然而,我很难找到任何参考cc
。这个命令是在 POSIX 标准中的某个地方提到的还是只是一个约定?
答案1
最初的 POSIX 1003.1(1988 年发布)指定了一个cc
实用程序。 Single Unix 规范第 2 版 (1997) 包括cc
和c89
。该名称c89
被引入为 C 的标准方言。该名称cc
被保留,但标记为遗留并声明为未指定的 C 方言。许多供应商提供的编译器默认为凯瑞C(即 ANSI C 之前的版本),名称为cc
.您可能会注意到,这cc
是强制性的,而c89
它是 C 语言开发选项的一部分。通常,C 编译器的名称cc
只能真正编译内核驱动程序,并且商业 unice 经常为适当的 C 编译器收取额外费用。
POSIX 1003.1-2001(单 Unix v3)指定c99
指定而不是c89
, 使用更新的 C 标准方言。您可以看到草稿中留下的一些编辑痕迹,cc
其中也包含实用程序,但cc
已从规范中删除。 POSIX 1003.1-2008 (Single Unix v4) 又刚刚有了c99