书书籍UNIX环境高级编程第3版W.,理查德·史蒂文斯(Wpdf下载pdf下载

书书籍UNIX环境高级编程第3版W.,理查德·史蒂文斯(W百度网盘pdf下载

作者:
简介:本篇主要提供书书籍UNIX环境高级编程第3版W.,理查德·史蒂文斯(Wpdf下载
出版社:慧谷图书专营店
出版时间:2019-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

   图书基本信息
图书名称   UNIX环境高级编程 第3版(异步图书出品)
作者   [美]W.,理查德·史蒂文斯(W.,Richard,Stev
定价   169元
出版社   人民邮电出版社
ISBN   9787115516756
出版日期   2019-10-01
字数   
页码   812
版次   
装帧   平装
开本   16开
商品重量   

   内容提要

本书是被誉为UNIX编程“”的Advanced Programming in the UNIX Environment一书的第3版。在本书第2版出版后的8年中,UNIX发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持前一版风格的基础上,根据新的标准对内容进行了修订和增补,反映了新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了众多应用实例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。 本书内容,概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。


   目录
第 1章 UNIX基础知识 1 n
1.1 引言 1 n
1.2 UNIX体系结构 1 n
1.3 登录 1 n
1.4 文件和目录 3 n
1.5 输入和输出 6 n
1.6 程序和进程 8 n
1.7 出错处理 11 n
1.8 用户标识 13 n
1.9 信号 14 n
1.10 时间值 16 n
1.11 系统调用和库函数 17 n
1.12 小结 18 n
习题 18 n
第 2章 UNIX标准及实现 20 n
2.1 引言 20 n
2.2 UNIX标准化 20 n
2.2.1 ISO C 20 n
2.2.2 IEEE POSIX 21 n
2.2.3 Single UNIX Specification 25 n
2.2.4 FIPS 26 n
2.3 UNIX系统实现 26 n
2.3.1 SVR4 27 n
2.3.2 4.4BSD 27 n
2.3.3 FreeBSD 28 n
2.3.4 Linux 28 n
2.3.5 Mac OS X 28 n
2.3.6 Solaris 28 n
2.3.7 其他UNIX系统 29 n
2.4 标准和实现的关系 29 n
2.5 限制 29 n
2.5.1 ISO C限制 30 n
2.5.2 POSIX限制 31 n
2.5.3 XSI限制 33 n
2.5.4 函数sysconf、pathconf和fpathconf 33 n
2.5.5 不确定的运行时限制 40 n
2.6 选项 43 n
2.7 功能测试宏 46 n
2.8 基本系统数据类型 47 n
2.9 标准之间的冲突 48 n
2.10 小结 48 n
习题 48 n
第3章 文件I/O 49 n
3.1 引言 49 n
3.2 文件描述符 49 n
3.3 函数open和openat 50 n
3.4 函数creat 52 n
3.5 函数close 53 n
3.6 函数lseek 53 n
3.7 函数read 57 n
3.8 函数write 57 n
3.9 I/O的效率 58 n
3.10 文件共享 59 n
3.11 原子操作 62 n
3.12 函数dup和dup2 63 n
3.13 函数sync、fsync和fdatasync 65 n
3.14 函数ftl 65 n
3.15 函数ioctl 70 n
3.16 /dev/fd 71 n
3.17 小结 72 n
习题 72 n
第4章 文件和目录 74 n
4.1 引言 74 n
4.2 函数stat、fstat、fstatat和lstat 74 n
4.3 文件类型 75 n
4.4 设置用户ID和设置组ID 78 n
4.5 文件访问权限 79 n
4.6 新文件和目录的所有权 80 n
4.7 函数access和faccessat 81 n
4.8 函数umask 83 n
4.9 函数chmod、fchmod和fchmodat 84 n
4.10 粘着位 87 n
4.11 函数chown、fchown、fchownat和lchown 88 n
4.12 文件长度 89 n
4.13 文件截断 90 n
4.14 文件系统 90 n
4.15 函数link、linkat、unlink、unlinkat和remove 93 n
4.16 函数rename和renameat 95 n
4.17 符号链接 96 n
4.18 创建和读取符号链接 99 n
4.19 文件的时间 99 n
4.20 函数futimens、utimensat和utimes 101 n
4.21 函数mkdir、mkdirat和rmdir 103 n
4.22 读目录 104 n
4.23 函数chdir、fchdir和getcwd 108 n
4.24 设备特殊文件 110 n
4.25 文件访问权限位小结 112 n
4.26 小结 113 n
习题 113 n
第5章 标准I/O库 115 n
5.1 引言 115 n
5.2 流和FILE对象 115 n
5.3 标准输入、标准输出和标准错误 116 n
5.4 缓冲 116 n
5.5 打开流 118 n
5.6 读和写流 120 n
5.7 每次一行I/O 122 n
5.8 标准I/O的效率 123 n
5.9 二进制I/O 125 n
5.10 定位流 126 n
5.11 格式化I/O 127 n
5.12 实现细节 131 n
5.13 临时文件 134 n
5.14 内存流 137 n
5.15 标准I/O的替代软件 140 n
5.16 小结 140 n
习题 140 n
第6章 系统数据文件和信息 142 n
6.1 引言 142 n
6.2 口令文件 142 n
6.3 阴影口令 145 n
6.4 组文件 146 n
6.5 附属组ID 147 n
6.6 实现区别 148 n
6.7 其他数据文件 148 n
6.8 登录账户记录 149 n
6.9 系统标识 150 n
6.10 时间和日期例程 151 n
6.11 小结 157 n
习题 157 n
第7章 进程环境 158 n
7.1 引言 158 n
7.2 main函数 158 n
7.3 进程终止 158 n
7.4 命令行参数 162 n
7.5 环境表 163 n
7.6 C程序的存储空间布局 163 n
7.7 共享库 165 n
7.8 存储空间分配 165 n
7.9 环境变量 168 n
7.10 函数setjmp和longjmp 170 n
7.11 函数getrlimit和setrlimit 175 n
7.12 小结 180 n
习题 180 n
第8章 进程控制 181 n
8.1 引言 181 n
8.2 进程标识 181 n
8.3 函数fork 182 n
8.4 函数vfork 187 n
8.5 函数et 188 n
8.6 函数wait和waitpid 190 n
8.7 函数waitid 194 n
8.8 函数wait3和wait4 195 n
8.9 竞争条件 196 n
8.10 函数exec 199 n
8.11 更改用户ID和更改组ID 204 n
8.12 解释器文件 207 n
8.13 函数system 211 n
8.14 进程会计 215 n
8.15 用户标识 220 n
8.16 进程调度 221 n
8.17 进程时间 224 n
8.18 小结 226 n
习题 226 n
第9章 进程关系 228 n
9.1 引言 228 n
9.2 终端登录 228 n
9.3 网络登录 231 n
9.4 进程组 233 n
9.5 会话 234 n
9.6 控制终端 235 n
9.7 函数tcgetpgrp、tcsetpgrp和tcgetsid 237 n
9.8 作业控制 237 n
9.9 shell执行程序 240 n
9.10 孤儿进程组 244 n
9.11 FreeBSD实现 246 n
9.12 小结 248 n
习题 248 n
第 10章 信号 249 n
10.1 引言 249 n
10.2 信号概念 249 n
10.3 函数signal 256 n
10.4 不可靠的信号 259 n
10.5 中断的系统调用 260 n
10.6 可重入函数 262 n
10.7 SIGCLD语义 264 n
10.8 可靠信号术语和语义 266 n
10.9 函数kill和raise 267 n
10.10 函数alarm和pause 268 n
10.11 信号集 273 n
10.12 函数sigprocmask 275 n
10.13 函数sigpending 276 n
10.14 函数sigaction 278 n
10.15 函数sigsetjmp和siglongjmp 283 n
10.16 函数sigsuspend 286 n
10.17 函数abort 291 n
10.18 函数system 293 n
10.19 函数sleep、nanosleep和clock_nanosleep 298 n
10.20 函数sigqueue 300 n
10.21 作业控制信号 301 n
10.22 信号名和编号 303 n
10.23 小结 305 n
习题 305 n
第 11章 线程 307 n
11.1 引言 307 n
11.2 线程概念 307 n
11.3 线程标识 308 n
11.4 线程创建 309 n
11.5 线程终止 311 n
11.6 线程同步 318 n
11.6.1 互斥量 320 n
11.6.2 避免死锁 322 n
11.6.3 函数pthread_mutex_ timedlock 327 n
11.6.4 读写锁 328 n
11.6.5 带有超时的读写锁 332 n
11.6.6 条件变量 332 n
11.6.7 自旋锁 335 n
11.6.8 屏障 336 n
11.7 小结 340 n
习题 340 n
第 12章 线程控制 341 n
12.1 引言 341 n
12.2 线程限制 341 n
12.3 线程属性 342 n
12.4 同步属性 345 n
12.4.1 互斥量属性 345 n
12.4.2 读写锁属性 352 n
12.4.3 条件变量属性 353 n
12.4.4 屏障属性 354 n
12.5 重入 354 n
12.6 线程特定数据 358 n
12.7 取消选项 362 n
12.8 线程和信号 364 n
12.9 线程和fork 367 n
12.10 线程和I/O 370 n
12.11 小结 371 n
习题 371 n
第 13章 守护进程 372 n
13.1 引言 372 n
13.2 守护进程的特征 372 n
13.3 编程规则 374 n
13.4 出错记录 377 n
13.5 单实例守护进程 380 n
13.6 守护进程的惯例 381 n
13.7 客户进程-服务器进程模型 386 n
13.8 小结 386 n
习题 387 n
第 14章 高级I/O 388 n
14.1 引言 388 n
14.2 非阻塞I/O 388 n
14.3 记录锁 391 n
14.4 I/O多路转接 403 n
14.4.1 函数select和pselect 404 n
14.4.2 函数poll 408 n
14.5 异步I/O 410 n
14.5.1 System V异步I/O 410 n
14.5.2 BSD异步I/O 411 n
14.5.3 POSIX异步I/O 411 n
14.6 函数readv和writev 419 n
14.7 函数readn和writen 421 n
14.8 存储映射I/O 422 n
14.9 小结 428 n
习题 428 n
第 15章 进程间通信 429 n
15.1 引言 429 n
15.2 管道 430 n
15.3 函数popen和pclose 436 n
15.4 协同进程 441 n
15.5 FIFO 445 n
15.6 XSI IPC 448 n
15.6.1 标识符和键 448 n
15.6.2 权限结构 449 n
15.6.3 结构限制 450 n
15.6.4 优点和缺点 450 n
15.7 消息队列 451 n
15.8 信号量 455 n
15.9 共享存储 459 n
15.10 POSIX信号量 465 n
15.11 客户进程-服务器进程属性 470 n
15.12 小结 472 n
习题 472 n
第 16章 网络IPC:套接字 474 n
16.1 引言 474 n
16.2 套接字描述符 474 n
16.3 寻址 477 n
16.3.1 字节序 477 n
16.3.2 地址格式 478 n
16.3.3 地址查询 480 n
16.3.4 将套接字与地址关联 486 n
16.4 建立连接 487 n
16.5 数据传输 491 n
16.6 套接字选项 502 n
16.7 带外数据 504 n
16.8 非阻塞和异步I/O 505 n
16.9 小结 506 n
习题 506 n
第 17章 高级进程间通信 507 n
17.1 引言 507 n
17.2 UNIX域套接字 507 n
17.3 连接 512 n
17.4 传送文件描述符 518 n
17.5 open服务器进程第 1版 527 n
17.6 open服务器进程第 2版 533 n
17.7 小结 542 n
习题 542 n
第 18章 终端I/O 544 n
18.1 引言 544 n
18.2 综述 544 n
18.3 特殊输入字符 549 n
18.4 获得和设置终端属性 553 n
18.5 终端选项标志 554 n
18.6 stty命令 560 n
18.7 波特率函数 560 n
18.8 行控制函数 561 n
18.9 终端标识 562 n
18.10 规范模式 567 n
18.11 非规范模式 570 n
18.12 终端窗口大小 576 n
18.13 termcap、terminfo和curses 578 n
18.14 小结 578 n
习题 579 n
第 19章 伪终端 580 n
19.1 引言 580 n
19.2 概述 580 n
19.3 打开伪终端设备 585 n
19.4 函数pty_fork 588 n
19.5 pty程序 590 n
19.6 使用pty程序 595 n
19.7 高级特性 600 n
19.8 小结 601 n
习题 601 n
第 20章 数据库函数库 603 n
20.1 引言 603 n
20.2 历史 603 n
20.3 函数库 604 n
20.4 实现概述 605 n
20.5 集中式或非集中式 608 n
20.6 并发 610 n
20.7 构造函数库 610 n
20.8 源代码 611 n
20.9 性能 635 n
20.10 小结 639 n
习题 639 n
第 21章 与网络打印机通信 640 n
21.1 引言 640 n
21.2 网络打印协议 640 n
21.3 超文本传输协议 642 n
21.4 打印假脱机技术 643 n
21.5 源代码 644 n
21.6 小结 684 n
习题 684 n
附录A 函数原型 685 n
附录B 其他源代码 721 n
附录C 部分习题答案 730 n
附录参考书目 763

   作者介绍

作者简介
W. 理查德.史蒂文斯(W. Richard Stevens)国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有多部经典的传世之作,包括《UNIX网络编程》(两卷本)、《TCP/IP详解》(三卷本)和本书版。

史蒂芬.A. 拉戈(Stephen A. Rago)资深UNIX程序员,目前任NEC美国实验室存储系统研究组研究员。之前是贝尔实验室的UNIX系统V版本4的开发人员之一。著有《UNIX系统V网络编程》,是本书版的技术审校和第2版的共同作者。

译者简介
戚正伟 博士,上海交通大学软件学院教授、博士生导师,CCF高级会员,CCF系统软件、理论计算机专委会委员,微软亚洲研究院和美国卡内基梅隆大学(CMU)访问学者。主要研究方向为系统软件和程序分析等,除翻译本书外,还著有《NewBluePill:深入理解硬件虚拟机》等。

张亚英 博士,同济大学电子与信息工程学院计算机系教授,研究方向为网络与分布式系统、大数据挖掘与分析等。

尤晋元 上海交通大学计算机科学及工程系教授、博士生导师。在科研方面,主要从事操作系统和分布对象计算技术方面的研究。在教学方面,长期承担操作系统及分布计算等课程的教学工作。主编和翻译了多本操作系统教材和参考书,包括《UNIX操作系统教程》《UNIX高级编程技术》《UNIX环境高级编程》和《操作系统:设计与实现》等。


   编辑推荐
20多年来,严谨的C程序员都是依靠一本书来深入了解驱动UNIX和Linux内核的编程接口的实用知识的,这本书就是W. Richard Stevens所著的《UNIX环境高级编程》。现在,Stevens的同事Stephen Rago更新了这本经典著作。 n
n
新的第3版支持当今领先的系统平台,反映了新技术进展和佳实践,并且符合新的Single UNIX Specification第4版(SUSv4)。 n
Rago保留了使本书前版成为经典之作的精髓和方法。他在Stevens原著的基础上,从基础的文件、目录和进程讲起,并给诸如信号处理和终端I/O之类的先进技术保留较大的篇幅。他还深入讨论了线程和多线程编程、使用套接字接口驱动进程间通信(IPC)等方面的内容。 n
n
这一版涵盖了70多个新接口,包括POSIX异步I/O、旋转锁、屏障(barrier)和POSIX信号量。此外,这一版删除了许多过时的接口,保留了一些广泛使用的接口。书中几乎所有实例都已经在主流的4个平台上测试过,包括Solaris 10、Mac OS X 10.6.8(Darwin 10.8.0)、Free-BSD 8.0和Ubuntu 12.04(基于Linux 3.2)。 n
n
与前两版一样,读者仍可以通过实例学习,这些实例包括了1万多行可下载的ISO C源代码,书中通过简明但完整的程序阐述了400多个系统调用和函数,清楚地说明它们的用法、参数和返回值。为了使读者能融会贯通,书中还提供了几个贯穿整章的案例,每个案例都根据现在的技术环境进行了全面更新。 n
n
本书帮助几代程序员写出了可靠、强大、高性能的代码。第3版根据当今主流系统进行更新,更具实用价值。