《UNIX环境高级编程》第2版 高清 PDF 电子书 带书签 免费下载

书籍简介
- 作者: W.Richard Stevens / Stephen A.Rago
- 出版社: 人民邮电出版社
- 出品方: 图灵教育
- 副标题: 第2版
- 译者: 尤晋元 / 张亚英 / 戚正伟
- 出版年: 2006年
- 页数: 758
- 装帧: 平装
- 丛书: 图灵计算机科学丛书
- 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
