UNIX环境高级编程部分.doc

上传人:m**** 文档编号:557342734 上传时间:2023-10-23 格式:DOC 页数:115 大小:422.50KB
返回 下载 相关 举报
UNIX环境高级编程部分.doc_第1页
第1页 / 共115页
UNIX环境高级编程部分.doc_第2页
第2页 / 共115页
UNIX环境高级编程部分.doc_第3页
第3页 / 共115页
UNIX环境高级编程部分.doc_第4页
第4页 / 共115页
UNIX环境高级编程部分.doc_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《UNIX环境高级编程部分.doc》由会员分享,可在线阅读,更多相关《UNIX环境高级编程部分.doc(115页珍藏版)》请在金锄头文库上搜索。

1、计算机科学丛书UNIX环境高级编程15章尤晋元 译机械工业出版社 前言引言本书说明Unix系统的程序设计界面系统调用界面和标准C提供的很多函数。这些对编写在Unix系统中运行的程序是非常有帮助的。与大多数操作系统一样,Unix对程序运行提供了大量的服务打开文件、读文件、启动一道新程序、分配存储区以及获得当前时间等。这些被称之为系统调用界面(system call interface)。另外,标准C库提供了大量C程序广泛使用的函数(格式化输入变量的值、比较两个字符串等)。系统调用和库函数系统上由Unix程序员手册中的第,部分说明。本书不是这些内容的重复。该手册没有给出实例,也不说明这些界面和函数

2、设计的合理性,而这些则正是本书所要弥补的。Unix标准在八十年代出现的大量Unix版本的基础上,八十年代后期开始制定了几个国际标准,包括:程序设计语言的ANSI标准、IEEE POSIX标准族(还在继续制定)、X/open可移植性指南。本书也说明这些标准,但是并不只是说明这些标准本身,而是着重说明它们与广泛受到重视的一些实现之间的关系,这些实现主要是系统版本,以及将发布的.BSD。这样也就提供了一种对现实世界的说明,而这正是标准本身及描述符的文献所缺少的。本书的组织本书分成个部分:1. 对Unix程序设计概念和术语的概要描述(第一章),以及对各种Unix标准化工作和Unix实现的讨论(第二章)

3、。2. 不带缓存的(第三章)、文件和目录(第四章、标准I/O库(第五章)以及系统数据文件(第六章)。3. 进程nix进程的环境(第七章)、进程控制(第八章)、进程之间的关系(第九章)以及信号(第十章)。4. 终端I/O(第十一章)、高级I/O(第十二章)以及精灵进程(第十三章)5. IPC进程间通信(第十四、十五章)。6. 实例一个数据库的函数库(第十六章)、与Postscrip打印机的通信(第十七章)、调制解调器拨号程序(第十八章)以及使用伪终端(第十九章)。如果对语言较熟悉并具有某些应用Unix的经验,那么对阅读本书是非常有益的,但是并不要求读者具有Unix的程序设计经验。本书面向的主要读

4、者是:熟悉Unix的程序员,熟悉某个其它操作系统的程序员,他们希望了解大多数Unix系统提供的各种服务的详细情况。本书中的实例本书包含大量实例大约10000行源代码。所有实例都用ANSL C语言编写。在阅读本书时,你应当有一本你所使用的UNIX系统的Unix程序员手册,关于实施的细节等有时需参考该手册。对于几乎每一个函数和系统调用,本书都用一个小的完整的程序进行演示。这可以让我们清楚地了解它们的用法,包括参数、返回值等。有些小程序还不是以说明库函数和系统调用的复杂功能和应用技巧,所以本书中也包含了一些较大的实例(第十六、十七、十八和十九章)。所有实例的源代码文件都可经Internet用匿名ft

5、p取到,其主机站点是,文件名是published/books/stevens.advprog.tar.Z。在你的机器上可对这些源代码进行修改并运行它们。用于测试实例的系统不幸的是所有操作系统都在不断变更,Unix也不例外。下图示出了系统和4.XBSD的最近进展情况。4.XBSD是由加州大学贝克莱分校计算机系统研究组开发的。该研究组也发布BSD NET1和BSD NET2版,它们包含了4.XBSD系统公众可用源代码。SVRX是AT& T的系统V的简称。XPG3是X/Open可移植性指南的第三次发行本的简称。ANSI C是C程序设计语言的ANSI标准。POSIX.1是Unix类系统界面的IEEE和

6、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 80386处理机上运行。2. 加州大学贝克莱分校计算机科学系(Computer Science Division)计

7、算机系统研究组的4.3+BSD,该系统在一台HP工作站上运行。3. 贝克莱软件设计公司的BSD/386(是BSD Net2的导出版),该系统在一台Intel 80386处理机系统上运行。该系统几乎与我们称之为4.3+BSD的相同。4. Sun Microsystems的Sun OS4.1.1和4.1.2(该系统与贝克莱系统有很深的渊源团系,但也包含了很多系统V的特征),这些系统在SPARC工作站SLC上运行。本书提供了与测试有关的许多时间信息,也说明了用于测试的系统实际系统。目录译者序前言第1章 UNIX基础知识11 引言12 登录121 登录名122 shell13 文件和目录131文件系统

8、132 文件名133路径名134工作目录135起始目录14输入和输出141文件描述符142标准输入、标准输出和标准出错143不用缓存的I/O144标准I/O15程序和进程151程序152进程和进程ID153进程控制16 ANSI C161 函数原型1.6.2类属指针1.6.3原始系统数据类型1.7 出错处理1.8 用户标识1.8.1 用户ID1.8.2 组ID1.8.3 添加组ID1.9 信号1.10 UNIX时间值1.11 系统调用和库函数1.12 小结习题第2章 UNIX标准化及实现2.1 引言2.2 UNIX标准化2.2.1 ANSI C2.2.2 IEEE POSIX2.2.3 X/O

9、pen XPG32.2.4 FIPS2.3 UNIX实现2.3.1 SVR42.3.2 4.3+BSD2.4 标准和实现的关系2.5 限制2.5.1 ANSI C限制2.5.2 POSIX限制2.5.3 XPG3限制2.5.4 sysconf、pathconf和 fpathconf函数2.5.5 FIPS 151-1要求2.5.6 限制总结2.5.7 未确定的运行时间限制2.6 功能测试宏2.7 基本系统数据类型2.8 标准之间的冲突2.9 小结习题第3章 文件I/O3.1 引言3.2 文件描述符3.3 open函数3.4 creat函数3.5 close函数3.6 lseek函数3.7 re

10、ad函数3.8 write函数3.9 I/O的效率3.10 文件共享3.11 原子操作3.11.1 添加至一个文件3.11.2 创建一个文件3.12 dup和dup2函数3.13 fcntl函数3.14 ioctl函数3.15 /dev/fd3.16 小结习题第4章 文件和目录4.1 引言4.2 stat,fstat和lstat函数4.3 文件类型4.4 设置-用户-ID和设置-组-ID4.5 文件存取许可权4.6 新文件和目录的所有权4.7 access函数4.8 umask函数4.9 chmod 和fchomod函数4.10 粘住位4.11 chown, fchown和 lchown函数4

11、.12 文件长度4.13 文件截短4.14 文件系统4.15 link, unlink, remove和 rename 函数4.16 符号连接4.17 symlink 和readlink函数4.18 文件的时间4.19 utime函数4.20 mkdir和 rmdir函数4.21 读目录4.22 chdir, fchdir和 getcwd函数4.23 特殊设备文件4.24 sync和 fsync函数4.25 文件存取许可权位小结4.26 小结习题第5章 标准I/O库5.1 引言5.2 流和FILE对象5.3 标准输入、标准输出和标准出错5.4 缓存5.5 打开流5.6 读和写流5.7 每次一行

12、I/O5.8 标准I/O的效率5.9 二进制I/O5.10 定位流5.11 格式化I/O5.12 实现细节5.13 临时文件5.14 标准I/O的替代软件5.15 小结习题第6章 系统数据文件和信息6.1 引言6.2 口令文件6.3 阴影口令6.4 组文件6.5 添加组ID6.6 其他数据文件6.7 登录会计6.8 系统标识6.9 时间和日期例程6.10 小结习题第7章 UNIX进程的环境7.1 引言7.2 main 函数7.3 进程终止7.3.1 exit和_exit函数7.3.2 atexit函数7.4 命令行参数7.5 环境表7.6 C程序的存储空间布局7.7 共享库7.8 存储器分配7

13、.9 环境变量7.10 setjmp 和longjmp函数7.10.1 自动, 寄存器和易失变量7.10.2 自动变量的潜在问题7.11 getrlimit 和setrlimit函数7.12 小结习题第8章 进程控制8.1 引言8.2 进程标识8.3 fork函数8.4 vfork 函数8.5 exit函数8.6 wait和waitpid函数8.7 wait3和 wait4函数8.8 竞态条件8.9 exec函数8.10 更改用户ID 和组ID 8.10.1 setreuid 和setregid函数8.10.2 seteuid和 setegid函数8.10.3 组ID8.11 解释器文件8.1

14、2 system函数8.13 进程会计8.14 用户标识8.15 进程时间8.16 小结习题第9章 进程关系9.1 引言9.2 终端登录9.2.1 4.3+BSD终端登录9.2.2 SVR4终端登录9.3 网络登录9.3.1 4.3+BSD网络登录9.3.2 SVR4网络登录9.4 进程组9.5 对话期9.6 终端控制9.7 tcgetpgrp 和tcsetpgrp函数9.8 作业控制9.9 shell执行程序9.10 孤儿进程组9.11 4.3+BSD实现9.12 小结习题第10章 信号10.1 引言10.2 信号的概念10.3 signal函数10.3.1 程序起动10.3.2 进程创建10.4 不可靠的信号10.5 中断的系统调用10.6 可再入函数10.7 SIGCLD语义10.8 可靠信号术语和语义10.9

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号