UNIX环境高级编程——UNIX标准及实现

2.1 引言

2.2 UNIX标准化

2.2.1 ISO C

  • ANSI是美国国家标准学会(American National Standards Institute)的缩写,它是国际标准化组织(International Organization for Standardization,ISO)中代表美国的成员;
  • IEC是国际电子技术委员会(International Electrotechnical Commission)的缩写。

2.2.2 IEEE POSIX

  • POSIX是一个最初由IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师学会)制定的标准族;
  • POSIX指的是可移植操作系统接口(Portable Operating System Interface)。

2.2.3 Single UNIX Specification

  • Single UNIX Specification(SUS,单一UNIX规范)是POSIX.1标准的一个超集,它定义了一些附加接口扩展了POSIX.1规范提供的功能。

2.2.4 FIPS

  • FIPS代表的是联邦信息处理标准(Federal Information Processing Standard),这一标准是由美国政府发布的,并由美国政府用于计算机系统的采购。

2.3 UNIX系统实现

2.3.1 SVR4

  • SVR4(UNIX System V Release 4)是AT&T的UNIX系统实验室(UNIX System Laboratories,USL,其前身是AT&T的UNIX Software Operation)的产品。

2.3.2 4.4BSD

  • BSD(Berkeley Software Distribution)是由加州大学伯克利分校的计算机系统研究组(CSRG)研究开发和分发的。

2.3.3 FreeBSD

  • FreeBSD基于4.4BSD-Lite操作系统。

2.3.4 Linux

  • Linux是由Linus Torvalds研发的一种提供类似于UNIX的丰富编程环境的操作系统,在GNU公用许可证的指导下,Linux是免费使用的。

2.3.5 Mac OS X

  • Mac OS X使用了完全不同的技术,其核心操作系统称为“Darwin”,它基于Mach内核、FreeBSD操作系统以及具有面向对象框架的驱动和其他内核扩展的结合。

2.3.6 Solaris

  • Solaris是由Sun Microsystems(现为Oracle)基于SVR4开发的UNIX系统版本。

2.3.7 其他UNIX系统

2.5 限制

2.5.1 ISO C限制

2.5.2 POSIX限制

2.5.3 XSI限制

2.5.4 函数sysconf、pathconf和fpathconf

某些限制值在编译时是可用的,而另外一些则必须在运行时确定,运行时限制可调用下面3个函数之一获得:

#include 

long sysconf(int name);
long pathconf(const char *pathname, int name);
long fpathconf(int fd, int name);
  • 所有函数返回值:若成功,返回相应值,若出错,返回-1;
  • 后面两个函数的差别是:一个用路径名作为其参数,另一个则取文件描述符作为参数。

2.5.5 不确定的运行时限制

2.6 选项

2.7 功能测试宏

2.8 基本系统数据类型

2.9 标准之间的冲突

2.10 实例代码

chapter2

你可能感兴趣的:(UNIX环境高级编程,unix,标准实现)