APUE第二章

来源:互联网 发布:用js表示阶层1加阶层2 编辑:程序博客网 时间:2024/04/30 08:36
第二章


2.2 UNIX标准化
POSIX是一系列由IEEE制定的标准,POSIX指的是可移植的操作系统接口(Portable Operating System Interface)。
它原来指的只是IEEE标准1003.1-1998,后来则扩展成包括很多标记为1003的标准及标准草案,包括shell和实用程序(1003.2)。
本书使用的标准是POSIX.1,也就是1990年正式出版的国际标准ISO/IEC 9945-1:1990。
POSIX.1包括ISO C标准库函数。
Single UNIX Specification(单一UNIX规范)是POSIX.1标准的一个超集,定义了一些附加的接口,扩展了更多功能。
相应的系统接口全集被称为X/Open系统接口(XSI,X/Open System Interface)。
只有遵循XSI的实现才能被称为UNIX系统。


2.3 UNIX系统实现
UNIX的各种版本和变体都起源于UNIX TSS(分时系统)第6版和第7版。
2个大的分支,1.AT&T分支的System Ⅲ和V(商用版本) 2.加州伯克利分支的BSD(Berkeley Software Distribution)。 


2.5 限制
UNIX系统实现定义了很多幻数和常量,为了标准化工作的努力,有若干种可移植方法用以确定这些幻数和实现定义的限制。
有三种类型的限制以及获取这些实现值的方法:
1.编译时限制(头文件)。
2.不与文件或目录相关联的运行时限制(sysconf函数)。
3.与文件或目录相关联的运行时限制(pathconf函数和fpathconf函数)。

#include <unistd.h>
long sysconf(int name);
long pathconf(const char *pathname, int name);
long fpathconf(int filedes, int name);
所有函数返回值:成功返回相应值,出错返回-1.
后两个函数之间的差别是一个用路径名作为参数,另一个取文件描述符作为参数。

p33、p34列出了以上函数所用的name参数,用于标识系统限制。
以_SC_开始的常量用作标识运行时限制的sysconf参数。以_PC_开始的常量用作标识运行时限制的pathconf或fpathconf参数。


2.8 基本系统数据类型
头文件<sys/types.h>中定义了某些与实现有关的数据类型,它们被称为基本系统数据类型,大多以_t结尾。