UNIX 环境高级编程 第二版 中文 PDF 文档

发布于 2024-01-24 19:50:21 字数 6894 浏览 21 评论 0

本书是被誉为 UNIX 编程圣经的 Advanced Programming in the UNIX Environment 一书的更新版。在本书第 1 版出版后的十几年中,UNIX 行业已经有了巨大的变化,特别是影响 UNIX 编程接口的有关标准变化很大。

本书在保持了前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍 UNIX 文件和目录、标准 I/O 库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种 I/O、进程间通信、网络 IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。

本书内容权威,概念清晰,阐述精辟,对于所有层次 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 部分习题答案

参考书目
索引

下载地址: https://www.wenjiangs.com/wp-content/uploads/2023/11/BtB1d1a2WsTetlUa.zip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

末蓝

文章 0 评论 0

年少掌心

文章 0 评论 0

党海生

文章 0 评论 0

飞翔的企鹅

文章 0 评论 0

鹿港小镇

文章 0 评论 0

wookoon

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文