UNIX环境高级编程(第3版)

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

《UNIX环境高级编程(第3版)》内容权威,概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。

适读人群 :所有层次UNIX/Linux程序员

20多年来,严谨的C程序员都是依靠一本书来深入了解驱动UNIX和Linux内核的编程接口的实用知识的,这本书就是W. Richard Stevens所著的《UNIX高级环境编程》。现在,Stevens的同事Steve Rago彻底更新了这本经典著作。新的第3版支持当今领先的系统平台,反映了最新技术进展和最佳实践,并且符合最新的Single UNIX Specification第4版(SUSv4)。

Rago保留了使本书前版成为经典之作的精髓和方法。他在Stevens原著的基础上,从基础的文件、目录和进程讲起,并给诸如信号处理和终端I/O之类的先进技术保留较大的篇幅。他还深入讨论了线程和多线程编程、使用套接字接口驱动进程间通信(IPC)等方面的内容。

这一版涵盖了70多个最新版POSIX.1标准的新增接口,包括POSIX异步I/O、旋转锁、屏障(barrier)和POSIX信号量。此外,这一版删除了许多过时的接口,保留了一些广泛使用的接口。书中几乎所有实例都已经在目前最主流的4个平台上测试过,包括Solaris 10、Mac OS X 10.6.8(Darwin 10.8.0)、FressBSD 8.0、Ubuntu 12.04(基于Linux 3.2内核)。

与前两版一样,读者仍可以通过实例学习,这些实例包括了1万多行可下载的ISO C源代码,书中通过简明但完整的程序阐述了400多个系统调用和函数,清楚地说明它们的用法、参数和返回值。为了使读者能融会贯通,书中还提供了几个贯穿整章的案例,每个案例都根据现在的技术环境进行了全面更新。

《UNIX环境高级编程(第3版)》帮助了几代程序员写出强大、高性能、可靠的代码。第3版根据当今主流系统进行更新,更具实用价值。

精彩书评:

本书第1版连同Stevens所著的系列网络技术书籍,被公认为优秀的、匠心独具的名著,成为极其畅销的作品……总之,这是一本弥足珍贵的经典著作的更新版。

——Dennis Ritchie,图灵奖得主,UNIX操作系统和C语言之父

对任何一个严谨的、专业的UNIX系统程序员而言,本书都是不可或缺的权威参考书。Rago更新和扩展了Stevens的经典著作,并保持了原书的风貌。书中利用清晰的实例演示了API的使用过程,还提到了许多在不同UNIX系统实现上编程时需要注意的陷阱,并指出如何使用相关的标准(如POSIX 1003.1 2004版和Single UNIX Specification第3版)来避免这些错误。

——Andrew Josey, The Open Group标准部门主管,POSIX 1003.1标准工作组主席

绝对的UNIX编程经典之一。

——Eric S. Raymond,《UNIX编程艺术》作者

Stephen Rago的更新版本对于使用众多UNIX及相关操作系统环境的广大专业用户来说是一个迟来的喜讯。这一版不仅删除了过时的接口,吸纳了较新的开发接口,还根据UNIX及类UNIX操作系统环境的几种主流实现发布的新版本全面更新了所有主题、实例和应用的背景。难能可贵的是,这一版本还保持了经典的第1版的风格和品位。

——Mukesh Kacker,Pronto Networks公司联合创始人和前任CTO

本书对于任何在UNIX系统上编写程序的开发人员来说都是非常重要的参考书。当我想要了解或者重新回顾各种系统接口时,这本书是首选的求助工具。Stephen Rago成功地修订了本书,使其与新的操作系统(如GNU/Linux和苹果的OS X)相容,并保持了第1版易读和实用的特质。它将永远摆放在我桌上随手可及的位置。

——Benjamin Kuperman博士,斯沃斯莫尔学院

这是每一位严谨的UNIX C程序员必备的书籍。它深入、全面、清晰的解释是无可匹敌的。

——UniForum Monthly

从W. Richard Stevens的这本书中可以找到更多易于理解的、详尽的UNIX系统内部细节。这本书包含了大量实际的例子,对系统编程工作非常有益。

——RS/Magazine

作者简介 · · · · · ·
作者介绍

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

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

译者介绍

戚正伟,博士,上海交通大学软件学院副教授,微软亚洲研究院(2008)和美国CMU大学(2011-2012)访问学者。研究方向为系统软件和程序分析,著有《New Blue Pill深入理解硬件虚拟机》和《嵌入式GIS开发及应用》等书。

张亚英,博士,同济大学电子与信息工程学院计算机系副教授,研究方向为分布与移动计算、嵌入式系统以及系统软件等。

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

目录 · · · · · ·
第1章 UNIX基础知识
1.1 引言
1.2 UNIX体系结构
1.3 登录
1.4 文件和目录
1.5 输入和输出
1.6 程序和进程
1.7 出错处理
1.8 用户标识
1.9 信号
1.10 时间值
1.11 系统调用和库函数
1.12 小结
习题
第2章 UNIX标准及实现
2.1 引言
2.2 UNIX标准化
2.2.1 ISO C
2.2.2 IEEE POSIX
2.2.3 Single UNIX Specification
2.2.4 FIPS
2.3 UNIX系统实现
2.3.1 SVR4
2.3.2 4.4BSD
2.3.3 FreeBSD
2.3.4 Linux
2.3.5 Mac OS X
2.3.6 Solaris
2.3.7 其他UNIX系统
2.4 标准和实现的关系
2.5 限制
2.5.1 ISO C限制
2.5.2 POSIX限制
2.5.3 XSI限制
2.5.4 函数sysconf、pathconf和fpathconf
2.5.5 不确定的运行时限制
2.6 选项
2.7 功能测试宏
2.8 基本系统数据类型
2.9 标准之间的冲突
2.10 小结
习题
第3章 文件I/O
3.1 引言
3.2 文件描述符
3.3 函数open和openat
3.4 函数creat
3.5 函数close
3.6 函数lseek
3.7 函数read
3.8 函数write
3.9 I/O的效率
3.10 文件共享
3.11 原子操作
3.12 函数dup和dup2
3.13 函数sync、fsync和fdatasync
3.14 函数fcntl
3.15 函数ioctl
3.16 /dev/fd
3.17 小结
习题
第4章 文件和目录
4.1 引言
4.2 函数stat、fstat、fstatat和lstat
4.3 文件类型
4.4 设置用户ID和设置组ID
4.5 文件访问权限
4.6 新文件和目录的所有权
4.7 函数access和faccessat
4.8 函数umask
4.9 函数chmod、fchmod和fchmodat
4.10 粘着位
4.11 函数chown、fchown、fchownat和lchown
4.12 文件长度
4.13 文件截断
4.14 文件系统
4.15 函数link、linkat、unlink、unlinkat和remove
4.16 函数rename和renameat
4.17 符号链接
4.18 创建和读取符号链接
4.19 文件的时间
4.20 函数futimens、utimensat和utimes
4.21 函数mkdir、mkdirat和rmdir
4.22 读目录
4.23 函数chdir、fchdir和getcwd
4.24 设备特殊文件
4.25 文件访问权限位小结
4.26 小结
习题
第5章 标准I/O库
5.1 引言
5.2 流和FILE对象
5.3 标准输入、标准输出和标准错误
5.4 缓冲
5.5 打开流
5.6 读和写流
5.7 每次一行I/O
5.8 标准I/O的效率
5.9 二进制I/O
5.10 定位流
5.11 格式化I/O
5.12 实现细节
5.13 临时文件
5.14 内存流
5.15 标准I/O的替代软件
5.16 小结
习题
第6章 系统数据文件和信息
6.1 引言
6.2 口令文件
6.3 阴影口令
6.4 组文件
6.5 附属组ID
6.6 实现区别
6.7 其他数据文件
6.8 登录账户记录
6.9 系统标识
6.10 时间和日期例程
6.11 小结
习题
第7章 进程环境
7.1 引言
7.2 main函数
7.3 进程终止
7.4 命令行参数
7.5 环境表
7.6 C程序的存储空间布局
7.7 共享库
7.8 存储空间分配
7.9 环境变量
7.10 函数setjmp和longjmp
7.11 函数getrlimit和setrlimit
7.12 小结
习题
第8章 进程控制
8.1 引言
8.2 进程标识
8.3 函数fork
8.4 函数vfork
8.5 函数exit
8.6 函数wait和waitpid
8.7 函数waitid
8.8 函数wait3和wait4
8.9 竞争条件
8.10 函数exec
8.11 更改用户ID和更改组ID
8.12 解释器文件
8.13 函数system
8.14 进程会计
8.15 用户标识
8.16 进程调度
8.17 进程时间
8.18 小结
习题
第9章 进程关系
9.1 引言
9.2 终端登录
9.3 网络登录
9.4 进程组
9.5 会话
9.6 控制终端
9.7 函数tcgetpgrp、tcsetpgrp和tcgetsid
9.8 作业控制
9.9 shell执行程序
9.10 孤儿进程组
9.11 FreeBSD实现
9.12 小结
习题
第10章 信号
10.1 引言
10.2 信号概念
10.3 函数signal
10.4 不可靠的信号
10.5 中断的系统调用
10.6 可重入函数
10.7 SIGCLD语义
10.8 可靠信号术语和语义
10.9 函数kill和raise
10.10 函数alarm和pause
10.11 信号集
10.12 函数sigprocmask
10.13 函数sigpending
10.14 函数sigaction
10.15 函数sigsetjmp和siglongjmp
10.16 函数sigsuspend
10.17 函数abort
10.18 函数system
10.19 函数sleep、nanosleep和clock_nanosleep
10.20 函数sigqueue
10.21 作业控制信号
10.22 信号名和编号
10.23 小结
习题
第11章 线程
11.1 引言
11.2 线程概念
11.3 线程标识
11.4 线程创建
11.5 线程终止
11.6 线程同步
11.6.1 互斥量
11.6.2 避免死锁
11.6.3 函数pthread_mutex_timedlock
11.6.4 读写锁
11.6.5 带有超时的读写锁
11.6.6 条件变量
11.6.7 自旋锁
11.6.8 屏障
11.7 小结
习题
第12章 线程控制
12.1 引言
12.2 线程限制
12.3 线程属性
12.4 同步属性
12.4.1 互斥量属性
12.4.2 读写锁属性
12.4.3 条件变量属性
12.4.4 屏障属性
12.5 重入
12.6 线程特定数据
12.7 取消选项
12.8 线程和信号
12.9 线程和fork
12.10 线程和I/O
12.11 小结
习题
第13章 守护进程
13.1 引言
13.2 守护进程的特征
13.3 编程规则
13.4 出错记录
13.5 单实例守护进程
13.6 守护进程的惯例
13.7 客户进程-服务器进程模型
13.8 小结
习题
第14章 高级I/O
14.1 引言
14.2 非阻塞I/O
14.3 记录锁
14.4 I/O多路转接
14.4.1 函数select和pselect
14.4.2 函数poll
14.5 异步I/O
14.5.1 System V异步I/O
14.5.2 BSD异步I/O
14.5.3 POSIX异步I/O
14.6 函数readv和writev
14.7 函数readn和writen
14.8 存储映射I/O
14.9 小结

链接: https://pan.baidu.com/s/16_Ad_f18I6wHNfmJANH3yA 提取码: wnmb

转载于:https://www.cnblogs.com/wuhuiheu/p/11090040.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《UNIX环境高级编程(第3)中文》是一本经典的UNIX编程工具书籍。本书由W. Richard Stevens与Stephen A. Rago合著,是UNIX系统编程领域的权威参考书。下面将从内容、特点和使用等方面进行简单介绍。 首先,本书内容系统全面,详细介绍了UNIX系统编程的各个方面。从主要的系统调用、文件I/O、进程控制、进程间通信、网络编程高级I/O、线程和信号处理等方面进行了详细讲解,适合各种层次的读者使用。同时,本书还包括了大量的示例代码和实践项目,让读者能够更好地理解和掌握UNIX编程。 其次,本书特点鲜明,准确简洁。作者通过深入浅出的实例和讲解方式,将复杂的UNIX编程概念和原理变得易于理解和实践。此外,本书还提供了大量的代码片段和实践案例,读者可以通过实际操作来加深对UNIX编程的理解和应用。 最后,本书使用方法简单易懂。无论是初学者还是有一定UNIX编程基础的读者,都能够通过本书快速上手。每章都有清晰的目录和章节划分,内容逻辑紧密,结构严谨。同时,每个章节还附有习题和答案,供读者巩固知识和进行自我测试。 总而言之,《UNIX环境高级编程(第3)中文》是一本非常值得推荐的UNIX编程指南。无论是对于想要深入了解UNIX系统编程的读者,还是对于需要掌握UNIX编程技巧的软件工程师或系统管理员来说,本书都是一本不可多得的经典教材。通过阅读本书,读者可以全面系统地了解UNIX编程的核心概念和原理,从而提升自己的UNIX编程能力。 ### 回答2: 《UNIX环境高级编程(第3)中文》是由W. Richard Stevens和Stephen A. Rago合著的一本经典的UNIX编程指南,是UNIX环境编程的权威参考。 这本书主要分为两个部分。第一部分介绍了UNIX系统的基础知识,包括文件I/O、进程控制、信号处理、进程间通信、线程以及网络编程等。通过深入浅出的方式,读者可以了解UNIX系统的基本概念和机制,并学会如何在UNIX环境下开发高效可靠的程序。 第二部分则介绍了一些高级主题,如高级I/O、进程间通信的高级特性、线程编程高级技术等。这些高级主题不仅对于程序员来说非常有用,而且对于系统管理员和网络工程师也非常重要。通过学习这些高级主题,读者可以进一步提高UNIX编程的能力,写出更加复杂和强大的程序。 这本书的优点在于它详细而全面地介绍了UNIX环境下的编程技术,是一本循序渐进、易学易懂的教材。作者通过丰富的实例和清晰的解释,让读者能够迅速理解和掌握各种编程技术。此外,书中还提供了大量的参考资料和实用技巧,读者可以通过这些资料和技巧提升编程的效率和质量。 总之,《UNIX环境高级编程(第3)中文》是一本非常好的UNIX编程指南,无论是初学者还是有经验的程序员,都可以从中受益匪浅。通过学习这本书,读者可以掌握UNIX环境下的高级编程技术,写出更加高效和可靠的程序。 ### 回答3: 《UNIX环境高级编程(第3)中文》是一本广泛应用于UNIX系统开发的经典图书,全书内容详尽,深入浅出地介绍了UNIX系统编程的核心概念和技术。 这本书首先介绍了UNIX系统编程的基础知识,包括文件IO、进程控制、信号处理等。对于初学者来说,这些基础知识是掌握UNIX编程的基础,书中给出了大量的例子和练习,帮助读者巩固理解。 随后,书中深入讲解了UNIX系统编程中的高级主题,包括进程间通信(IPC)、线程、网络编程等。这些主题都是实际开发中经常遇到的问题,作者通过清晰的讲解和实例,帮助读者理解并掌握相关的编程技巧。 此外,本书还介绍了UNIX系统编程中的其他重要概念和工具,如信号量、共享内存、套接字等。这些内容是开发复杂UNIX应用所必备的知识,书中给出了详细的技术说明和示例,方便读者理解和实践。 总之,这本书适合有一定编程基础,希望深入学习UNIX系统编程的开发者阅读。它不仅能够帮助读者掌握UNIX系统编程的核心概念和技术,还能够提供实用的编程实例和技巧,方便读者在实际开发中灵活运用。无论是想成为一名UNIX系统开发专家,还是希望扩展自己的技能,在UNIX环境高级编程(第3)中文这本书中都能找到所需的知识和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值