Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103624246
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: C/C++

2008-04-16 17:13:19

引言 
本书说明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上运行。 
本书提供了与测试有关的许多时间信息,也说明了用于测试的系统实际系统。 
阅读(344) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~