《UNIX环境高级编程》第2版 高清 PDF 电子书 带书签 免费下载
作者: W.Richard Stevens / Stephen A.Rago
出版社: 人民邮电出版社
出品方: 图灵教育
副标题: 第2版
译者: 尤晋元 / 张亚英 / 戚正伟
出版年: 2006年
页数: 758
定价: 99.00元
装帧: 平装
丛书: 图灵计算机科学丛书
ISBN: 9787115147318
下载地址
https://pan.quark.cn/s/43b4560a0a64
内容简介
本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。
本书内容权威,概念清晰,阐述精辟,对于所有层次UNIX程序员都是一本不可或缺的参考书。
作者简介
W.Richard Stevens,备受赞誉的技术作家,生前著有多种经典的传世之作,包括《UNIX网络编程》(两卷本)、《TCP/IP详解》(三卷本)和本书第1版。
尤晋元,上海交通大学计算机科学及工程系教 授、博士生导师。在科研方面,主要从事操作系统和分布对象计算技术方面的研究;在教学方面,长期承担操作系统及分布计算等课程的教学工作。主编和翻译了多本操作系统教材和参考书,包括《UNIX操作系统教程》、《UNIX高级编程技术》、《UNIX环境高级编程》和《操作系统:设计与实现》等。
目录
CoverBig 1 UNIX环境高级编程(高清非扫描) 2006 2 001 2 第1 章U N I X 基础知识 2 1.1 引言 2 1.2 登录 2 1.2.1 登录名 2 1.2.2 shell 2 1.3 文件和目录 3 1.3.1 文件系统 3 1.3.2 文件名 3 1.3.3 路径名 3 1.3.4 工作目录 5 1.3.5 起始目录 5 1.4 输入和输出 5 1.4.1 文件描述符 5 1.4.2 标准输入、标准输出和标准出错 6 1.4.3 不用缓存的I / O 6 1.4.4 标准I / O 7 1.5 程序和进程 8 1.5.1 程序 8 1.5.2 进程和进程I D 8 1.5.3 进程控制 8 1.6 ANSI C 10 1.6.1 函数原型 10 1.6.2 类属指针 10 1.6.3 原始系统数据类型 11 1.7 出错处理 11 1.8 用户标识 12 1.8.1 用户I D 12 1.8.2 组I D 13 1.8.3 添加组I D 13 1.9 信号 13 1.10 UNIX 时间值 15 1 . 11 系统调用和库函数 15 1.12 小结 17 002 18 第2 章U N I X 标准化及实现 18 2.1 引言 18 2.2 UNIX 标准化 18 2.2.1 ANSI C 18 2.2.2 IEEE POSIX 19 2.2.3 X/Open XPG3 20 2.2.4 FIPS 20 2.3 UNIX 实现 20 2.3.1 SVR4 21 2.3.2 4.3+BSD 21 2.4 标准和实现的关系 22 2.5 限制 22 2.5.1 ANSI C 限制 22 2.5.2 POSIX 限制 23 2.5.3 XPG3 限制 25 2.5.4 sysconf 、pathconf 和fpathconf 函数 25 2.5.5 FIPS 151-1 要求 29 2.5.6 限制总结 29 2.5.7 未确定的运行时间限制 30 2.6 功能测试宏 33 2.7 基本系统数据类型 33 2.8 标准之间的冲突 34 2.9 小结 35 003 36 第3 章文件I / O 36 3.1 引言 36 3.2 文件描述符 36 3.3 open 函数 36 3.4 creat 函数 38 3.5 close 函数 38 3.6 lseek 函数 39 3.7 read 函数 41 3.8 write 函数 41 3.9 I/O 的效率 42 3.10 文件共享 43 3.11 原子操作 46 3.11.1 添加至一个文件 46 3.11.2 创建一个文件 46 3.12 dup 和d u p 2 函数 47 3.13 fcntl 函数 48 3.14 ioctl 函数 51 3.15 /dev/fd 52 3.16 小结 53 004 55 第4 章文件和目录 56 4.1 引言 56 4.2 stat 、fstat 和lstat 函数 56 4.3 文件类型 56 4.4 设置-用户- I D 和设置-组- I D 59 4.5 文件存取许可权 60 4.6 新文件和目录的所有权 62 4.7 access 函数 62 4.8 umask 函数 63 4.9 chmod 和f c h m o d 函数 65 4.10 粘住位 67 4 . 11 chown, fchown 和l c h o w n 函数 67 4.12 文件长度 69 4.13 文件截短 70 4.14 文件系统 70 4.15 link,unlink,remove 和r e n a m e 函数 73 4.16 符号连接 75 4.17 symlink 和r e a d l i n k 函数 77 4.18 文件的时间 78 4.19 utime 函数 80 4.20 mkdir 和r m d i r 函数 81 4.21 读目录 82 4.22 chdir, fchdir 和getcwd 函数 86 4.23 特殊设备文件 88 4.24 sync 和f s y n c 函数 89 4.25 文件存取许可权位小结 90 4.26 小结 91 005 93 第5 章标准I/O 库 93 5.1 引言 93 5.2 流和F I L E 对象 93 5.3 标准输入、标准输出和标准出错 93 5.4 缓存 93 5.5 打开流 96 5.6 读和写流 98 5.6.1 输入函数 98 5.6.2 输出函数 99 5.7 每次一行I / O 100 5.8 标准I / O 的效率 101 5.9 二进制I / O 102 5.10 定位流 104 5.11 格式化I / O 105 5.11.1 格式化输出 105 5.11.2 格式化输入 106 5.12 实现细节 106 5.13 临时文件 107 5.14 标准I / O 的替代软件 110 5.15 小结 110 006 112 第6 章系统数据文件和信息 113 6.1 引言 113 6.2 口令文件 113 6.3 阴影口令 115 6.4 组文件 116 6.5 添加组I D 117 6.6 其他数据文件 118 6.7 登录会计 119 6.8 系统标识 119 6.9 时间和日期例程 120 6.10 小结 124 007 125 第7 章U N I X 进程的环境 126 7.1 引言 126 7.2 main 函数 126 7.3 进程终止 126 7.3.1 exit 和_ e x i t 函数 126 7.3.2 atexit 函数 127 7.4 命令行参数 129 7.5 环境表 130 7.6 C 程序的存储空间布局 130 7.7 共享库 131 7.8 存储器分配 132 7.9 环境变量 134 7.10 setjmp 和l o n g j m p 函数 136 7.10.1 自动、寄存器和易失变量 138 7.10.2 自动变量的潜在问题 140 7.11 getrlimit 和s e t r l i m i t 140 7.12 小结 143 008 145 第8 章进程控制 145 8.1 引言 145 8.2 进程标识 145 8.3 fork 函数 146 8.4 vfork 函数 149 8.5 exit 函数 150 8.6 wait 和w a i t p i d 函数 152 8.7 wait3 和w a i t 4 函数 156 8.8 竞态条件 157 8.9 exec 函数 160 8.10 更改用户I D 和组I D 164 8.10.1 setreuid 和s e t r e g i d 函数 166 8.10.2 seteuid 和s e t e g i d 函数 167 8.10.3 组I D 168 8.11 解释器文件 168 8.12 system 函数 171 8.13 进程会计 175 8.14 用户标识 179 8.15 进程时间 180 8.16 小结 182 009 184 第9 章进程关系 185 9.1 引言 185 9.2 终端登录 185 9.2.1 4.3+BSD 终端登录 185 9.2.2 SVR4 终端登录 187 9.3 网络登录 187 9.3.1 4.3 +B S D 网络登录 187 9.3.2 SVR4 网络登录 189 9.4 进程组 189 9.5 对话期 189 9.6 控制终端 190 9.7 tcgetpgrp 和t c s e t p g r p 函数 192 9.8 作业控制 192 9.9 shell 执行程序 194 9.10 孤儿进程组 198 9.11 4.3+BSD 实现 200 9.12 小结 202 010 203 第1 0 章信号 204 10.1 引言 204 10.2 信号的概念 204 10.3 signal 函数 209 10.3.1 程序起动 211 10.3.2 进程创建 212 10.4 不可靠的信号 212 10.5 中断的系统调用 213 10.6 可再入函数 215 10.7 SIGCLD 语义 217 10.8 可靠信号术语和语义 219 10.9 kill 和r a i s e 函数 219 10.10 alarm 和p a u s e 函数 220 1 0.11 信号集 225 10.12 sigprocmask 函数 226 10.13 sigpending 函数 228 10.14 sigaction 函数 229 10.15 sigsetjmp 和s i g l o n g j m p 函数 232 10.16 sigsuspend 函数 235 10.17 abort 函数 240 10.18 system 函数 241 10.19 sleep 函数 246 10.20 作业控制信号 247 10.21 其他特征 249 10.21.1 信号名字 249 10.21.2 SVR4 信号处理程序的附加参数 250 10.21.3 4.3+BSD 信号处理程序的附加参数 250 10.22 小结 250 011 252 第11 章终端I / O 253 11.1 引言 253 11.2 综述 253 11.3 特殊输入字符 257 11.4 获得和设置终端属性 261 11.5 终端选择标志 262 11.6 stty 命令 265 11.7 波特率函数 266 11.8 行控制函数 267 11.9 终端标识 267 11.10 规范方式 270 11 . 11 非规范方式 273 11.12 终端的窗口大小 277 11.13 termcap,terminfo 和c u r s e s 278 11.14 小结 279 012 280 第1 2 章高级I / O 280 12.1 引言 280 12.2 非阻塞I / O 280 12.3 记录锁 282 12.3.1 历史 283 12.3.2 fcntl 记录锁 283 12.3.3 锁的隐含继承和释放 287 12.3.4 4.3+BSD 的实现 288 12.3.5 建议性锁和强制性锁 291 12.4 流 295 12.4.1 流消息 296 12.4.2 putmsg 和p u t p m s g 函数 297 12.4.3 流ioctl 操作 298 12.4.4 write 至流设备 301 12.4.5 写方式 301 12.4.6 getmsg 和g e t p m s g 函数 301 12.4.7 读方式 302 12.5 I/O 多路转接 303 12.5.1 select 函数 305 12.5.2 poll 函数 308 12.6 异步I / O 310 12.6.1 SVR4 310 12.6.2 4.3+BSD 311 12.7 readv 和w r i t e v 函数 311 12.8 readn 和w r i t e n 函数 313 12.9 存储映射I / O 314 12.10 小结 318 013 319 第1 3 章精灵进程 320 13.1 引言 320 13.2 精灵进程的特征 320 13.3 编程规则 321 13.4 出错记录 322 13.4.1 SVR4 流l o g 驱动程序 323 13.4.2 4.3+BSD syslog 设施 324 13.5 客户机-服务器模型 327 13.6 小结 327 014 328 第1 4 章进程间通信 329 14.1 引言 329 14.2 管道 329 14.3 popen 和p c l o s e 函数 334 14.4 协同进程 339 14.5 FIFO 342 14.6 系统V IPC 三种系统V IPC :消息 344 14.6.1 标识符和关键字 345 14.6.2 许可权结构 346 14.6.3 结构限制 346 14.6.4 优点和缺点 346 14.7 消息队列 347 14.8 信号量 351 14.9 共享存储 355 14.10 客户机-服务器属性 360 1 4.11 小结 362 015 364 第1 5 章高级进程间通信 364 15.1 引言 364 15.2 流管道 364 15.3 传送文件描述符 367 15.3.1 SVR4 368 15.3.2 4.3BSD 370 15.3.3 4.3+BSD 373 15.4 open 服务器第1 版 375 15.5 客户机-服务器连接函数 380 15.5.1 SVR4 381 15.5.2 4.3+BSD 384 15.6 open 服务器第2 版 387 15.7 小结 393 016 395 第1 6 章数据库函数库 396 16.1 引言 396 16.2 历史 396 16.3 函数库 396 16.4 实现概述 398 16.5 集中式或非集中式 400 16.6 并发 401 16.6.1 粗锁 401 16.6.2 细锁 401 16.7 源码 402 16.8 性能 419 16.8.1 单进程的结果 420 16.8.2 多进程的结果 420 16.9 小结 422 017 423 第1 7 章与PostScript 打印机通信 423 17.1 引言 423 17.2 PostScript 通信机制 423 17.3 假脱机打印 425 17.4 源码 426 17.5 小结 444 018 445 第1 8 章调制解调器拨号器 445 18.1 引言 445 18.2 历史 445 18.3 程序设计 446 18.4 数据文件 446 18.5 服务器设计 449 18.6 服务器源码 450 18.7 客户机设计 473 18.7.1 终端行规程 473 18.7.2 一个进程还是两个进程 474 18.8 客户机源码 475 18.9 小结 484 019 486 第1 9 章伪终端 487 19.1 引言 487 19.2 概述 487 19.2.1 网络登录服务器 488 19.2.2 script 程序 489 19.2.3 expect 程序 490 19.2.4 运行协同进程 490 19.2.5 观看长时间运行程序的输出 491 19.3 打开伪终端设备 491 19.3.1 SVR4 491 19.3.2 4.3+BSD 493 19.4 pty_fork 函数 494 19.5 pty 程序 497 19.6 使用p t y 程序 500 19.6.1 utmp 文件 500 19.6.2 作业控制交互 501 19.6.3 检查长时间运行程序的输出 501 19.6.4 script 程序 502 19.6.5 运行协同进程 502 19.6.6 用非交互模式驱动交互式程序 503 19.7 其他特性 505 19.7.1 打包模式 505 19.7.2 远程模式 505 19.7.3 窗口大小变化 505 19.7.4 信号发生 505 19.8 小结 506 020 508 附录A 函数原型 508 021 523 附录B 其他源代码 524 B.1 头文件 524 B.2 标准出错处理例程 525 022 530 附录C 习题答案 531 第1 章 531 第2 章 531 第3 章 532 第4 章 533 第5 章 536 第6 章 536 第7 章 538 第8 章 538 第9 章 540 第10章 541 第11章 542 第12章 542 第13章 544 第14章 545 第15章 547 第16章 547 第17章 547 第18章 548 第19章 548 023 549 参考书目 550 CoverBig 1 UNIX环境高级编程(高清非扫描) 2006 2 001 2 第1 章U N I X 基础知识 2 1.1 引言 2 1.2 登录 2 1.2.1 登录名 2 1.2.2 shell 2 1.3 文件和目录 3 1.3.1 文件系统 3 1.3.2 文件名 3 1.3.3 路径名 3 1.3.4 工作目录 5 1.3.5 起始目录 5 1.4 输入和输出 5 1.4.1 文件描述符 5 1.4.2 标准输入、标准输出和标准出错 6 1.4.3 不用缓存的I / O 6 1.4.4 标准I / O 7 1.5 程序和进程 8 1.5.1 程序 8 1.5.2 进程和进程I D 8 1.5.3 进程控制 8 1.6 ANSI C 10 1.6.1 函数原型 10 1.6.2 类属指针 10 1.6.3 原始系统数据类型 11 1.7 出错处理 11 1.8 用户标识 12 1.8.1 用户I D 12 1.8.2 组I D 13 1.8.3 添加组I D 13 1.9 信号 13 1.10 UNIX 时间值 15 1 . 11 系统调用和库函数 15 1.12 小结 17 002 18 第2 章U N I X 标准化及实现 18 2.1 引言 18 2.2 UNIX 标准化 18 2.2.1 ANSI C 18 2.2.2 IEEE POSIX 19 2.2.3 X/Open XPG3 20 2.2.4 FIPS 20 2.3 UNIX 实现 20 2.3.1 SVR4 21 2.3.2 4.3+BSD 21 2.4 标准和实现的关系 22 2.5 限制 22 2.5.1 ANSI C 限制 22 2.5.2 POSIX 限制 23 2.5.3 XPG3 限制 25 2.5.4 sysconf 、pathconf 和fpathconf 函数 25 2.5.5 FIPS 151-1 要求 29 2.5.6 限制总结 29 2.5.7 未确定的运行时间限制 30 2.6 功能测试宏 33 2.7 基本系统数据类型 33 2.8 标准之间的冲突 34 2.9 小结 35 003 36 第3 章文件I / O 36 3.1 引言 36 3.2 文件描述符 36 3.3 open 函数 36 3.4 creat 函数 38 3.5 close 函数 38 3.6 lseek 函数 39 3.7 read 函数 41 3.8 write 函数 41 3.9 I/O 的效率 42 3.10 文件共享 43 3.11 原子操作 46 3.11.1 添加至一个文件 46 3.11.2 创建一个文件 46 3.12 dup 和d u p 2 函数 47 3.13 fcntl 函数 48 3.14 ioctl 函数 51 3.15 /dev/fd 52 3.16 小结 53 004 55 第4 章文件和目录 56 4.1 引言 56 4.2 stat 、fstat 和lstat 函数 56 4.3 文件类型 56 4.4 设置-用户- I D 和设置-组- I D 59 4.5 文件存取许可权 60 4.6 新文件和目录的所有权 62 4.7 access 函数 62 4.8 umask 函数 63 4.9 chmod 和f c h m o d 函数 65 4.10 粘住位 67 4 . 11 chown, fchown 和l c h o w n 函数 67 4.12 文件长度 69 4.13 文件截短 70 4.14 文件系统 70 4.15 link,unlink,remove 和r e n a m e 函数 73 4.16 符号连接 75 4.17 symlink 和r e a d l i n k 函数 77 4.18 文件的时间 78 4.19 utime 函数 80 4.20 mkdir 和r m d i r 函数 81 4.21 读目录 82 4.22 chdir, fchdir 和getcwd 函数 86 4.23 特殊设备文件 88 4.24 sync 和f s y n c 函数 89 4.25 文件存取许可权位小结 90 4.26 小结 91 005 93 第5 章标准I/O 库 93 5.1 引言 93 5.2 流和F I L E 对象 93 5.3 标准输入、标准输出和标准出错 93 5.4 缓存 93 5.5 打开流 96 5.6 读和写流 98 5.6.1 输入函数 98 5.6.2 输出函数 99 5.7 每次一行I / O 100 5.8 标准I / O 的效率 101 5.9 二进制I / O 102 5.10 定位流 104 5.11 格式化I / O 105 5.11.1 格式化输出 105 5.11.2 格式化输入 106 5.12 实现细节 106 5.13 临时文件 107 5.14 标准I / O 的替代软件 110 5.15 小结 110 006 112 第6 章系统数据文件和信息 113 6.1 引言 113 6.2 口令文件 113 6.3 阴影口令 115 6.4 组文件 116 6.5 添加组I D 117 6.6 其他数据文件 118 6.7 登录会计 119 6.8 系统标识 119 6.9 时间和日期例程 120 6.10 小结 124 007 125 第7 章U N I X 进程的环境 126 7.1 引言 126 7.2 main 函数 126 7.3 进程终止 126 7.3.1 exit 和_ e x i t 函数 126 7.3.2 atexit 函数 127 7.4 命令行参数 129 7.5 环境表 130 7.6 C 程序的存储空间布局 130 7.7 共享库 131 7.8 存储器分配 132 7.9 环境变量 134 7.10 setjmp 和l o n g j m p 函数 136 7.10.1 自动、寄存器和易失变量 138 7.10.2 自动变量的潜在问题 140 7.11 getrlimit 和s e t r l i m i t 140 7.12 小结 143 008 145 第8 章进程控制 145 8.1 引言 145 8.2 进程标识 145 8.3 fork 函数 146 8.4 vfork 函数 149 8.5 exit 函数 150 8.6 wait 和w a i t p i d 函数 152 8.7 wait3 和w a i t 4 函数 156 8.8 竞态条件 157 8.9 exec 函数 160 8.10 更改用户I D 和组I D 164 8.10.1 setreuid 和s e t r e g i d 函数 166 8.10.2 seteuid 和s e t e g i d 函数 167 8.10.3 组I D 168 8.11 解释器文件 168 8.12 system 函数 171 8.13 进程会计 175 8.14 用户标识 179 8.15 进程时间 180 8.16 小结 182 009 184 第9 章进程关系 185 9.1 引言 185 9.2 终端登录 185 9.2.1 4.3+BSD 终端登录 185 9.2.2 SVR4 终端登录 187 9.3 网络登录 187 9.3.1 4.3 +B S D 网络登录 187 9.3.2 SVR4 网络登录 189 9.4 进程组 189 9.5 对话期 189 9.6 控制终端 190 9.7 tcgetpgrp 和t c s e t p g r p 函数 192 9.8 作业控制 192 9.9 shell 执行程序 194 9.10 孤儿进程组 198 9.11 4.3+BSD 实现 200 9.12 小结 202 010 203 第1 0 章信号 204 10.1 引言 204 10.2 信号的概念 204 10.3 signal 函数 209 10.3.1 程序起动 211 10.3.2 进程创建 212 10.4 不可靠的信号 212 10.5 中断的系统调用 213 10.6 可再入函数 215 10.7 SIGCLD 语义 217 10.8 可靠信号术语和语义 219 10.9 kill 和r a i s e 函数 219 10.10 alarm 和p a u s e 函数 220 1 0.11 信号集 225 10.12 sigprocmask 函数 226 10.13 sigpending 函数 228 10.14 sigaction 函数 229 10.15 sigsetjmp 和s i g l o n g j m p 函数 232 10.16 sigsuspend 函数 235 10.17 abort 函数 240 10.18 system 函数 241 10.19 sleep 函数 246 10.20 作业控制信号 247 10.21 其他特征 249 10.21.1 信号名字 249 10.21.2 SVR4 信号处理程序的附加参数 250 10.21.3 4.3+BSD 信号处理程序的附加参数 250 10.22 小结 250 011 252 第11 章终端I / O 253 11.1 引言 253 11.2 综述 253 11.3 特殊输入字符 257 11.4 获得和设置终端属性 261 11.5 终端选择标志 262 11.6 stty 命令 265 11.7 波特率函数 266 11.8 行控制函数 267 11.9 终端标识 267 11.10 规范方式 270 11 . 11 非规范方式 273 11.12 终端的窗口大小 277 11.13 termcap,terminfo 和c u r s e s 278 11.14 小结 279 012 280 第1 2 章高级I / O 280 12.1 引言 280 12.2 非阻塞I / O 280 12.3 记录锁 282 12.3.1 历史 283 12.3.2 fcntl 记录锁 283 12.3.3 锁的隐含继承和释放 287 12.3.4 4.3+BSD 的实现 288 12.3.5 建议性锁和强制性锁 291 12.4 流 295 12.4.1 流消息 296 12.4.2 putmsg 和p u t p m s g 函数 297 12.4.3 流ioctl 操作 298 12.4.4 write 至流设备 301 12.4.5 写方式 301 12.4.6 getmsg 和g e t p m s g 函数 301 12.4.7 读方式 302 12.5 I/O 多路转接 303 12.5.1 select 函数 305 12.5.2 poll 函数 308 12.6 异步I / O 310 12.6.1 SVR4 310 12.6.2 4.3+BSD 311 12.7 readv 和w r i t e v 函数 311 12.8 readn 和w r i t e n 函数 313 12.9 存储映射I / O 314 12.10 小结 318 013 319 第1 3 章精灵进程 320 13.1 引言 320 13.2 精灵进程的特征 320 13.3 编程规则 321 13.4 出错记录 322 13.4.1 SVR4 流l o g 驱动程序 323 13.4.2 4.3+BSD syslog 设施 324 13.5 客户机-服务器模型 327 13.6 小结 327 014 328 第1 4 章进程间通信 329 14.1 引言 329 14.2 管道 329 14.3 popen 和p c l o s e 函数 334 14.4 协同进程 339 14.5 FIFO 342 14.6 系统V IPC 三种系统V IPC :消息 344 14.6.1 标识符和关键字 345 14.6.2 许可权结构 346 14.6.3 结构限制 346 14.6.4 优点和缺点 346 14.7 消息队列 347 14.8 信号量 351 14.9 共享存储 355 14.10 客户机-服务器属性 360 1 4.11 小结 362 015 364 第1 5 章高级进程间通信 364 15.1 引言 364 15.2 流管道 364 15.3 传送文件描述符 367 15.3.1 SVR4 368 15.3.2 4.3BSD 370 15.3.3 4.3+BSD 373 15.4 open 服务器第1 版 375 15.5 客户机-服务器连接函数 380 15.5.1 SVR4 381 15.5.2 4.3+BSD 384 15.6 open 服务器第2 版 387 15.7 小结 393 016 395 第1 6 章数据库函数库 396 16.1 引言 396 16.2 历史 396 16.3 函数库 396 16.4 实现概述 398 16.5 集中式或非集中式 400 16.6 并发 401 16.6.1 粗锁 401 16.6.2 细锁 401 16.7 源码 402 16.8 性能 419 16.8.1 单进程的结果 420 16.8.2 多进程的结果 420 16.9 小结 422 017 423 第1 7 章与PostScript 打印机通信 423 17.1 引言 423 17.2 PostScript 通信机制 423 17.3 假脱机打印 425 17.4 源码 426 17.5 小结 444 018 445 第1 8 章调制解调器拨号器 445 18.1 引言 445 18.2 历史 445 18.3 程序设计 446 18.4 数据文件 446 18.5 服务器设计 449 18.6 服务器源码 450 18.7 客户机设计 473 18.7.1 终端行规程 473 18.7.2 一个进程还是两个进程 474 18.8 客户机源码 475 18.9 小结 484 019 486 第1 9 章伪终端 487 19.1 引言 487 19.2 概述 487 19.2.1 网络登录服务器 488 19.2.2 script 程序 489 19.2.3 expect 程序 490 19.2.4 运行协同进程 490 19.2.5 观看长时间运行程序的输出 491 19.3 打开伪终端设备 491 19.3.1 SVR4 491 19.3.2 4.3+BSD 493 19.4 pty_fork 函数 494 19.5 pty 程序 497 19.6 使用p t y 程序 500 19.6.1 utmp 文件 500 19.6.2 作业控制交互 501 19.6.3 检查长时间运行程序的输出 501 19.6.4 script 程序 502 19.6.5 运行协同进程 502 19.6.6 用非交互模式驱动交互式程序 503 19.7 其他特性 505 19.7.1 打包模式 505 19.7.2 远程模式 505 19.7.3 窗口大小变化 505 19.7.4 信号发生 505 19.8 小结 506 020 508 附录A 函数原型 508 021 523 附录B 其他源代码 524 B.1 头文件 524 B.2 标准出错处理例程 525 022 530 附录C 习题答案 531 第1 章 531 第2 章 531 第3 章 532 第4 章 533 第5 章 536 第6 章 536 第7 章 538 第8 章 538 第9 章 540 第10章 541 第11章 542 第12章 542 第13章 544 第14章 545 第15章 547 第16章 547 第17章 547 第18章 548 第19章 548 023 549 参考书目 550