为什么要进行标准化呢?
在早期,Unix应用程序虽然可以在不同版本的unix操作系统之间移植相当容易,但是随着Unix系统版本的剧增以及他们的差别越来越大,不同版本的unix系统的应用程序的移植也越来越困难,为了提升应用程序在各种Unix系统环境的移植性,各机构对其进行了标准化,标准化的一个重要工作就是对每种实现必须定义各种限制进行说明。
ISO C标准
1989年,C程序设计语言的ANSI标准得到批准,此标准被采纳为国际标准ISO/IEC 9899:1990
ISO C标准的意图是提供C程序的可移植性,使其能够适合于大量不同的操作系统,而不是只适合UNIX系统
1999年,ISO C标准被更新,并批准为iso/iec 9899:1999 ,它显著改善了对数值处理的应用软件的支持,某些函数增加了关键字 restrict(增加的关键字不影响下面所说的POXIS接口),restrict关键字告诉编译器那些指针引用是可以优化的。
ISO C标准定义的头文件有24个,这些头文件在(FreeBSD 8.0、Linux 3.2.0、Mac os 10.6.8、Solaris 10)都支持
IEEE POSIX 标准
POSIX是一个最初由IEEE制定的标准族,POSIX指的是可移植操作系统结构(Protable Operating System Interface),该标准的目的是提升应用程序在各种UNIX系统环境之间的可移植性,
POSIX.1包含了ISO C标准函数库,同时结构分类两部分:必须部分和可选部分(X/Open系统接口(X/Open System Interface,XSI))。