一、UNIX标准化:
1.ISO C
ISO C (ISO是国际标准化组织)是C程序设计语言的标准,适用于一切使用C语言编程的场合
主要有两个版本的国际C标准:
一个是C89,即ANSI C(ANSI是美国国家标准学会),这是通行的实际标准;
另一个是C99,主要是在兼容C89的基础进行了扩充,如增加了restrict(强制所修饰类型只能为指针的修饰符)关键字等。
2.IEEE POSIX
IEEE是:电气与电子工程师协会,POSIX是可移植的操作系统接口,POSIX由IEEE制定,通过ISO进行标准化。
该标准的目的是提高应用程序在各种UNIX系统环境之间的可移植性。
当前通行的标准为POSIX.1,其包含了 ISO C 标准库函数。
3.Single UNIX Specification
Single UNIX Specification(单一UNIX规范)是POSIX.1标准的一个超集,.定义了一些附加接口。
这些接口扩展了基本的POSIX.1规范所提供的功能,相应的接口系统全集被称为X/Open系统接口。
二、UNIX系统实现
1.SVR4(UNIX系统V第4版):是AT&T的UNIX系统实验室的产品
2.4.4BDS:此版是由加州大学伯克利分校的计算机系统研究组研究开发和分发的。
3.FreeBDS:其基础是4.4BSD-Lite操作系统
4.Linux:是在POSIX标准指导下发布的独立UNIX分支,使用GPL许可证。
5.Mac OS X:Mac OS X内核称为Darwin,在Mach微内核和FreeBSD的基础上开发,主要运行于苹果计算机的PowerPC处理器。
6.Solaris:由Sun公司开发的UNIX系统版本,基于SVR4.
7.其他UNIX系统
三、限制
1.ISO C 限制
ISO C限制和常量被分为5类:
a.不变的最小值
在<limits.h>里定义的POSIX.1的不变最小值 | ||
名称 | 描述:...的可接受的最小值 | 值 |
_POSIX_ARG_MAX | exec函数参数的长度 | 4,096 |
_POSIX_CHILD_MAX | 每个真实用户ID的子进程数 | 25 |
_POSIX_HOST_NAME_MAX | gethostname返回的主机名的最大长度 | 255 |
_POSIX_LINK_MAX | 一个文件的链接数 | 8 |
_POSIX_LOGIN_NAME_MAX | 登录名的最大长度 | 9 |
_POSIX_MAX_CANON | 终端最简洁的(canonical)输入队列的字节数 | 255 |
_POSIX_MAX_INPUT | 终端输入队列的可用空格 | 255 |
_POSIX_NAME_MAX | 文件名的字节数,不包括终止字符null | 14 |
_POSIX_NGROUPS_MAX | 一个进程的同步的补充组ID的数量 | 8 |
_POSIX_OPEN_MAX | 一个进程打开的文件数 | 20 |
_POSIX_PATH_MAX | 路径名的字节数,包括终止符null | 256 |
_POSIX_PIP_BUF | 可被原子写入管道的字节数 | 512 |
_POSIX_RE_DUP_MAX | 当使用间隔标记“\{m,n\}”时,被regexec和regcomp函数认可的基本正则表达式的重复出现次数 | 255 |
_POSIX_SSIZE_MAX |