此页目录

《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环境高级编程》和《操作系统:设计与实现》等。

目录

shell
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