1. 首页
  2. 操作系统
  3. Unix
  4. 鸿鹄论坛|华为认证H35-211-HCNP Access Network题库

鸿鹄论坛|华为认证H35-211-HCNP Access Network题库

上传者: 2024-07-17 11:36:47上传 PDF文件 18.16MB 热度 13次

2.4标准和实现的关系我们已提及的标准定义了任一实际系统的子集。虽然IEEE POSIX正致力于在其他所需方面(例如,网络界面,进程间的通信,系统管理)制订出标准,但在编著本书写作时,这些标准还并不存在。本书集中阐述了两个实际的UNIX系统:SVR4和4.3+BSD。因为这两个系统都宣称是依从POSIX的,所以我们一方面集中阐述了POSIX.1标准所要求的功能,同时又指出POSIX和这两个系统具体实现之间的差别。故SVR4或4.3+BSD特有的功能和例程都被清楚地标记出来。因为XPG3是POSIX.1的超集,所以我们还叙述了属于XPG3,但不属于POSIX.1的功能。

应当了解,SVR4和4.3+BSD都提供了对它们早期版本功能的兼容性(例如SVR3.2对4.3BSD)。例如,SVR4对POSIX规格说明中的非阻塞I/O (O_NONBLOCK)以及传统的系统V方法(O_NDELAY)都提供了支持。本书将只使用POSIX.1的功能,但是也会提及它所替换的是哪一种非标准功能。与此相类似,SVR3.2和4.3BSD以某种方法提供了可靠信号机制,这种方法也有别于POSIX.1标准。第10章将只说明POSIX.1的信号机制。

2.5限制有很多由实现定义的幻数和常数,其中有很多已被编写到程序中,或由特定的技术所确定。由于大量标准化工作的努力,已有若干种可移植的方法用以确定这些幻数和实现定义的限制。这非常有助于软件的可移植性。以下三种类型的功能是必需的:编译时间选择项(该系统是否支持作业控制)、编译时间限制(短整型的最大值是什么)、运行时间限制(文件名的最大字符数为多少)。前两个,编译时间选择项和限制可在头文件中定义。程序在编译时可以包含这些头文件。但是,运行时间限制则要求进程调用一个函数以获得此种限制值。

某些限制在一个给定的实现中可能是固定的(因此可以静态地在一个头文件中定义),而在另一个实现上则可能是变动的(需要有一个运行时间函数调用)。这种类型限制的一个例子是文件名的最大字符数。系统V由于历史原因只允许文件名有14个字符,而伯克利的系统则将此增加为255。SVR4允许我们对每一个创建的文件系统指明是系统V文件系统还是BSD文件系统,而每个系统有不同的限制。这就是运行时间限制的一个实例,文件名的最大长度依赖于文件所处的文件系统。例如,根文件系统中的文件名长度限制可能是14个字符,而在某个其他文件系统中文件名长度限制可能是255个字符。

为了解决这些问题,提供了三种限制:(1)编辑时间选择项及限制(头文件)。(2)不与文件或目录相关联的运行时间限制。(3)与文件或目录相关联的运行时间限制。使事情变得更加复杂的是,如果一个特定的运行时间限制在一个给定的系统上并不改变,则可将其静态地定义在一个头文件中,但是,如果没有将其定义在头文件中,则应用程序就必。

相关资料可参考以下链接:

相关图片

用户评论