UNIX标准化
ISO C
restrict关键字不影响POSIX接口。restrict关键字告诉编译器,哪些指针是可以优化的,其方法是指出指针引用的对象在函数中只能通过该指针进行访问。
IEEE POSIX
POSIX最初是IEEE制定的的标准族是可移植操作系统接口,第一章有介绍
- 下图是POSIX要求必须含有的头文件,·表示含有
- 下图是POSIX要求可选含有的头文件,·表示含有,XSI表示(X/open System Interface,XSI,详细见下一标准)
Single UNIX Specification
简称SUS,单一UNIX规范,是POSIX的一个超集,定义了一些附加接口扩展了POSIX.1的功能
相应的系统接口全集被称为X/Open系统接口(XSI,X/Open System Interface) , XSI还定义了实现必须支持的POSIX.1的哪些可选部分才能认为是遵循XSI的。它们包括文件同步,存储映射文件,存储保护及线程接口。只有遵循XSI的实现才能称为UNIX操作系统。
FIPS
联邦信息标准,美国政府发布
UNIX系统实现
UNIX发展史,具体了解可以看书
标准和实现关系
略,具体看书
限制
UNIX定义了许多幻数和常量,为了增加和改善UNIX环境下软件可移植性,增加了若干种方法确定这些幻数和具体实现定义的限制,以下两种是必须的
- 编译是限制,可在头文件定义,程序在编译时可以包含这些头文件。
- 运行时限制,要求进程调用一个函数获得限制值
- 编译时限制,头文件
- 与文件或目录无关的运行时限制,sysconf()
- 与文件或目录有关的运行时限制,pathconf()和fpathconf()
ISO C限制
- 编译时限制都定义在limits.h文件里
ubuntu 20.04依然沿用C99标准
参考
APUE
POSIX && XSI_