
版权信息丛书名: 图灵计算机科学丛书
作者: (美)史蒂文斯,(美)拉戈 著,尤晋元,张亚英,戚正伟 译
出 版 社: 人民邮电出版社
出版时间: 2006-5-1
字数: 1271000
页数: 758
开本: 16
I S B N : 9787115147318
分类: 图书 >> 计算机/网络 >> 操作系统/系统开发 >> UNIX Solaris
定价:¥99.00
内容简介本书是被誉为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环境高级编程》和《操作系统:设计与实现》等。
图书目录第1章UNIX基础知识1
1.1引言1
1.2UNIX体系结构1
1.3登录1
1.4文件和目录3
1.5输入和输出6
1.6程序和进程8
1.7出错处理10
1.8用户标识12
1.9信号14
1.10时间值15
1.11系统调用和库函数16
1.12小结17
习题18
第2章UNIX标准化及实现19
2.1引言19
2.2UNIX标准化19
2.2.1ISO C19
2.2.2IEEE POSIX20
2.2.3Single UNIX Specification25
2.2.4FIPS26
2.3UNIX系统实现26
2.3.1SVR426
2.3.24.4BSD27
2.3.3FreeBSD27
2.3.4Linux27
2.3.5Mac OS X28
2.3.6Solaris28
2.3.7其他UNIX系统28
2.4标准和实现的关系28
2.5限制29
2.5.1ISO C限制29
2.5.2POSIX限制30
2.5.3XSI限制32
2.5.4sysconf、pathconf和fpathconf函数32
2.5.5不确定的运行时限制38
2.6选项42
2.7功能测试宏44
2.8基本系统数据类型45
2.9标准之间的冲突45
2.10小结46
习题46
第3章文件I/O47
3.1引言47
3.2文件描述符47
3.3open函数48
3.4creat函数49
3.5close函数50
3.6lseek函数50
3.7read函数53
3.8write函数54
3.9I/O的效率54
3.10文件共享56
3.11原子操作59
3.12dup和dup2函数60
3.13sync、fsync和fdatasync函数61
3.14fcntl函数62
3.15ioctl函数66
3.16/dev/fd67
3.17小结68
习题68
第4章文件和目录71
4.1引言71
4.2stat、fstat和lstat函数71
4.3文件类型72
4.4设置用户ID和设置组ID74
4.5文件访问权限75
4.6新文件和目录的所有权77
4.7access函数77
4.8umask函数79
4.9chmod和fchmod函数81
4.10粘住位83
4.11chown、fchown和lchown函数84
4.12文件长度85
4.13文件截短86
4.14文件系统86
4.15link、unlink、remove和rename函数89
4.16符号链接91
4.17symlink和readlink函数94
4.18文件的时间94
4.19utime函数95
4.20mkdir和rmdir函数97
4.21读目录98
4.22chdir、fchdir和getcwd函数102
4.23设备特殊文件104
4.24文件访问权限位小结106
4.25小结106
习题107
第5章标准I/O库109
5.1引言109
5.2流和FILE对象109
5.3标准输入、标准输出和标准出错110
5.4缓冲110
5.5打开流112
5.6读和写流114
5.7每次一行I/O116
5.8标准I/O的效率117
5.9二进制I/O119
5.10定位流120
5.11格式化I/O121
5.12实现细节125
5.13临时文件127
5.14标准I/O的替代软件130
5.15小结130
习题130
第6章系统数据文件和信息133
6.1引言133
6.2口令文件133
6.3阴影口令136
6.4组文件137
6.5附加组ID138
6.6实现的区别139
6.7其他数据文件139
6.8登录账户记录140
6.9系统标识141
6.10时间和日期例程142
6.11小结146
习题146
第7章进程环境147
7.1引言147
7.2main函数147
7.3进程终止147
7.4命令行参数151
7.5环境表152
7.6C程序的存储空间布局152
7.7共享库154
7.8存储器分配154
7.9环境变量157
7.10setjmp和longjmp函数159
7.11getrlimit和setrlimit函数164
7.12小结168
习题168
第8章进程控制171
8.1引言171
8.2进程标识符171
8.3fork函数172
8.4vfork函数176
8.5exit函数178
8.6wait和waitpid函数179
8.7waitid函数183
8.8wait3和wait4函数184
8.9竞争条件185
8.10exec函数188
8.11更改用户ID和组ID192
8.12解释器文件196
8.13system函数200
8.14进程会计203
8.15用户标识208
8.16进程时间208
8.17小结210
习题211
第9章进程关系213
9.1引言213
9.2终端登录213
9.3网络登录216
9.4进程组218
9.5会话219
9.6控制终端220
9.7tcgetpgrp、tcsetpgrp和tcgetsid函数221
9.8作业控制222
9.9shell执行程序225
9.10孤儿进程组228
9.11FreeBSD实现230
9.12小结231
习题232
第10章信号233
10.1引言233
10.2信号概念233
10.3signal函数240
10.4不可靠的信号242
10.5中断的系统调用244
10.6可重入函数246
10.7SIGCLD语义248
10.8可靠信号术语和语义250
10.9kill和raise函数251
10.10alarm和pause函数252
10.11信号集256
10.12sigprocmask函数258
10.13sigpending函数259
10.14sigaction函数261
10.15sigsetjmp和siglongjmp函数266
10.16sigsuspend函数268
10.17abort函数274
10.18system函数276
10.19sleep函数280
10.20作业控制信号282
10.21其他特征284
10.22小结285
习题285
第11章线程287
11.1引言287
11.2线程概念287
11.3线程标识288
11.4线程的创建288
11.5线程终止291
11.6线程同步297
11.7小结311
习题311
第12章线程控制313
12.1引言313
12.2线程限制313
12.3线程属性314
12.4同步属性318
12.5重入324
12.6线程私有数据328
12.7取消选项331
12.8线程和信号333
12.9线程和fork336
12.10线程和I/O339
12.11小结340
习题340
第13章守护进程341
13.1引言341
13.2守护进程的特征341
13.3编程规则342
13.4出错记录345
13.5单实例守护进程348
13.6守护进程的惯例350
13.7客户进程-服务器进程模型354
13.8小结354
习题354
第14章高级I/O355
14.1引言355
14.2非阻塞I/O355
14.3记录锁357
14.4STREAMS370
14.5I/O多路转接379
14.5.1select和pselect函数381
14.5.2poll函数384
14.6异步I/O386
14.6.1系统V异步I/O386
14.6.2BSD异步I/O387
14.7readv和writev函数387
14.8readn和writen函数389
14.9存储映射I/O390
14.10小结395
习题396
第15章进程间通信397
15.1引言397
15.2管道398
15.3popen和pclose函数403
15.4协同进程408
15.5FIFO412
15.6XSI IPC415
15.6.1标识符和键415
15.6.2权限结构416
15.6.3结构限制417
15.6.4优点和缺点417
15.7消息队列418
15.8信号量422
15.9共享存储427
15.10客户进程-服务器进程属性432
15.11小结434
习题434
第16章网络IPC:套接字437
16.1引言437
16.2套接字描述符437
16.3寻址439
16.3.1字节序440
16.3.2地址格式441
16.3.3地址查询442
16.3.4将套接字与地址绑定449
16.4建立连接450
16.5数据传输452
16.6套接字选项464
16.7带外数据466
16.8非阻塞和异步I/O467
16.9小结468
习题468
第17章高级进程间通信469
17.1引言469
17.2基于STREAMS的管道469
17.2.1命名的STREAMS管道472
17.2.2唯一连接473
17.3UNIX域套接字476
17.3.1命名UNIX域套接字477
17.3.2唯一连接478
17.4传送文件描述符482
17.4.1经由基于STREAMS的管道传送文件描述符484
17.4.2经由UNIX域套接字传送文件描述符486
17.5open服务器版本1493
17.6open服务器版本2498
17.7小结505
习题505
第18章终端I/O507
18.1引言507
18.2综述507
18.3特殊输入字符512
18.4获得和设置终端属性516
18.5终端选项标志516
18.6stty命令522
18.7波特率函数523
18.8行控制函数524
18.9终端标识524
18.10规范模式529
18.11非规范模式532
18.12终端的窗口大小537
18.13termcap,terminfo和curses539
18.14小结540
习题540
第19章伪终端541
19.1引言541
19.2概述541
19.3打开伪终端设备544
19.3.1基于STREAMS的伪终端547
19.3.2基于BSD的伪终端549
19.3.3基于Linux的伪终端551
19.4pty_fork函数553
19.5pty程序555
19.6使用pty程序559
19.7高级特性564
19.8小结565
习题565
第20章数据库函数库567
20.1引言567
20.2历史567
20.3函数库568
20.4实现概述569
20.5集中式或非集中式572
20.6并发574
20.7构造函数库574
20.8源代码575
20.9性能598
20.10小结600
习题601
第21章与网络打印机通信603
21.1引言603
21.2网络打印协议603
21.3超文本传输协议605
21.4打印假脱机技术605
21.5源代码607
21.6小结644
习题645
附录A函数原型647
附录B其他源代码677
附录C部分习题答案685
参考书目709
索引715