当前位置:主页 > 书籍配套资源 > UNIX配套资源
《UNIX环境高级编程(第3版)》源代码

《UNIX环境高级编程(第3版)》源代码

  • 更新:2021-12-17
  • 大小:245.93 KB
  • 类别:UNIX
  • 作者:W.Richard、Stevens
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

编辑推荐  

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多个系统调用和函数,清楚地说明它们的用法、参数和返回值。为了使读者能融会贯通,书中还提供了几个贯穿整章的案例,每个案例都根据现在的技术环境进行了全面更新。

本书帮助了几代程序员写出强大、高性能、可靠的代码。第3版根据当今主流系统进行更新,更具实用价值。

内容简介

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

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

作者简介

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

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

译者介绍

戚正伟博士,上海交通大学软件学院副教授,微软亚洲研究院(2008)和美国CMU大学(2011-2012)访问学者。研究方向为系统软件和程序分析,著有《NewBluePill深入理解硬件虚拟机》和《嵌入式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 小结
  • 习题
  • 第15章 进程间通信
  • 15.1 引言
  • 15.2 管道
  • 15.3 函数popen和pclose
  • 15.4 协同进程
  • 15.5 FIFO
  • 15.6 XSI IPC
  • 15.6.1 标识符和键
  • 15.6.2 权限结构
  • 15.6.3 结构限制
  • 15.6.4 优点和缺点
  • 15.7 消息队列
  • 15.8 信号量
  • 15.9 共享存储
  • 15.10 POSIX信号量
  • 15.11 客户进程-服务器进程属性
  • 15.12 小结
  • 习题
  • 第16章 网络IPC:套接字
  • 16.1 引言
  • 16.2 套接字描述符
  • 16.3 寻址
  • 16.3.1 字节序
  • 16.3.2 地址格式
  • 16.3.3 地址查询
  • 16.3.4 将套接字与地址关联
  • 16.4 建立连接
  • 16.5 数据传输
  • 16.6 套接字选项
  • 16.7 带外数据
  • 16.8 非阻塞和异步I/O
  • 16.9 小结
  • 习题
  • 第17章 高级进程间通信
  • 17.1 引言
  • 17.2 UNIX域套接字
  • 17.3 唯一连接
  • 17.4 传送文件描述符
  • 17.5 open服务器进程第1版
  • 17.6 open服务器进程第2版
  • 17.7 小结
  • 习题
  • 第18章 终端I/O
  • 18.1 引言
  • 18.2 综述
  • 18.3 特殊输入字符
  • 18.4 获得和设置终端属性
  • 18.5 终端选项标志
  • 18.6 stty命令
  • 18.7 波特率函数
  • 18.8 行控制函数
  • 18.9 终端标识
  • 18.10 规范模式
  • 18.11 非规范模式
  • 18.12 终端窗口大小
  • 18.13 termcap、terminfo和curses
  • 18.14 小结
  • 习题
  • 第19章 伪终端
  • 19.1 引言
  • 19.2 概述
  • 19.3 打开伪终端设备
  • 19.4 函数pty_fork
  • 19.5 pty程序
  • 19.6 使用pty程序
  • 19.7 高级特性
  • 19.8 小结
  • 习题
  • 第20章 数据库函数库
  • 20.1 引言
  • 20.2 历史
  • 20.3 函数库
  • 20.4 实现概述
  • 20.5 集中式或非集中式
  • 20.6 并发
  • 20.7 构造函数库
  • 20.8 源代码
  • 20.9 性能
  • 20.10 小结
  • 习题
  • 第21章 与网络打印机通信
  • 21.1 引言
  • 21.2 网络打印协议
  • 21.3 超文本传输协议HTTP
  • 21.4 打印假脱机技术
  • 21.5 源代码
  • 21.6 小结
  • 习题
  • 附录A 函数原型
  • 附录B 其他源代码
  • 附录C 部分习题答案
  • 参考书目
  • 索引

资源下载

资源下载地址1:https://box.lenovo.com/l/0HzQ4j

网友留言