cyberfan's blog

正其谊不谋其利,明其道不计其功

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  15 随笔 :: 489 文章 :: 44 评论 :: 0 Trackbacks
引言
本书说明Unix系统的程序设计界面-系统调用界面和标准C提供的很多函数。这些对编写
在Unix系统中运行的程序是非常有帮助的。
与大多数操作系统一样,Unix对程序运行提供了大量的服务-打开文件、读文件、启动一
道新程序、分配存储区以及获得当前时间等。这些被称之为系统调用界面(system cal
l interface)。另外,标准C库提供了大量C程序广泛使用的函数(格式化输入变量的值
、比较两个字符串等)。
系统调用和库函数系统上由Unix程序员手册中的第2,3部分说明。本书不是这些内容
的重复。该手册没有给出实例,也不说明这些界面和函数设计的合理性,而这些则正是
本书所要弥补的。
Unix标准
在八十年代出现的大量Unix版本的基础上,八十年代后期开始制定了几个国际标准,包
括:C程序设计语言的ANSI标准、IEEE POSIX标准族(还在继续制定)、X/open可移植
性指南。
本书也说明这些标准,但是并不只是说明这些标准本身,而是着重说明它们与广泛受到
重视的一些实现之间的关系,这些实现主要是系统V版本4,以及将发布的4.4BSD。
这样也就提供了一种对现实世界的说明,而这正是标准本身及描述符的文献所缺少的。

本书的组织
  本书分成6个部分:
1. 对Unix程序设计概念和术语的概要描述(第一章),以及对各种Unix标准化工作和U
nix实现的讨论(第二章)。
2. 不带缓存的I/O(第三章)、文件和目录(第四章、标准I/O库(第五章)以及系
统数据文件(第六章)。
3. 进程-Unix进程的环境(第七章)、进程控制(第八章)、进程之间的关系(第九章
)以及信号(第十章)。
4. 终端I/O(第十一章)、高级I/O(第十二章)以及精灵进程(第十三章)
5. IPC--进程间通信(第十四、十五章)。
6. 实例-一个数据库的函数库(第十六章)、与Postscrip打印机的通信(第十七章)、
调制解调器拨号程序(第十八章)以及使用伪终端(第十九章)。
如果对C语言较熟悉并具有某些应用Unix的经验,那么对阅读本书是非常有益的,但是
并不要求读者具有Unix的程序设计经验。本书面向的主要读者是:熟悉Unix的程序员,
熟悉某个其它操作系统的程序员,他们希望了解大多数Unix系统提供的各种服务的详细
情况。
本书中的实例
本书包含大量实例-大约10000行源代码。所有实例都用ANSL C语言编写。在阅读本书时
,你应当有一本你所使用的UNIX系统的Unix程序员手册,关于实施的细节等有时需参考
该手册。
对于几乎每一个函数和系统调用,本书都用一个小的完整的程序进行演示。这可以让我
们清楚地了解它们的用法,包括参数、返回值等。有些小程序还不是以说明库函数和系
统调用的复杂功能和应用技巧,所以本书中也包含了一些较大的实例(第十六、十七、
十八和十九章)。
所有实例的源代码文件都可经Internet用匿名ftp取到,其主机站点是ftjp.uu.net,文件
名是published/books/stevens.advprog.tar.Z。在你的机器上可对这些源代码进行修改
并运行它们。
用于测试实例的系统
不幸的是所有操作系统都在不断变更,Unix也不例外。下图示出了系统V和4.XBSD的最
近进展情况。
4.XBSD是由加州大学贝克莱分校计算机系统研究组开发的。该研究组也发布BSD NET1和
BSD NET2版,它们包含了4.XBSD系统公众可用源代码。SVRX是AT& T的系统V的简称。XP
G3是X/Open可移植性指南的第三次发行本的简称。ANSI C是C程序设计语言的ANSI标准。
POSIX.1是Unix类系统界面的IEEE和ISD标准。2.2和2.3节将对这些标准和版本之间的差
别作更多说明。
在本书中,用4.3+BSD表示BSD NET2和4.4BSD之间的Unix系统。
在本书写作时,4.4BSD尚未发行,所以不能称一个系统为4.4BSD。尽管为此,

需要一个简单的名字以引用此种系统,在全书中我们用4.3+BSD。
本书中的大多数实例曾在4种Unix系统上运行过,它们是:
1. U.H公司(UHC)的Unix System V/386 Release4.0 Version 2.0。该系统在Intel 8
0386处理机上运行。
2. 加州大学贝克莱分校计算机科学系(Computer Science Division)计算机系统研究
组的4.3+BSD,该系统在一台HP工作站上运行。
3. 贝克莱软件设计公司的BSD/386(是BSD Net2的导出版),该系统在一台Intel 8038
6处理机系统上运行。该系统几乎与我们称之为4.3+BSD的相同。
4. Sun Microsystems的Sun OS4.1.1和4.1.2(该系统与贝克莱系统有很深的渊源团系,
但也包含了很多系统V的特征),这些系统在SPARC工作站SLC上运行。
本书提供了与测试有关的许多时间信息,也说明了用于测试的系统实际系统。
posted on 2005-08-15 10:33 cyberfan 阅读(138) 评论(0)  编辑 收藏 引用 所属分类: linux/unix
只有注册用户登录后才能发表评论。