内容简介
本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第3版。在本书第2版出版后的8年中,UNIX行业发生了巨大的变化,是影响UNIX编程接口的有关标准变化很大。本书在保持前一版风格的基础上,根据的标准对内容进行了修订和增补,反映了的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了众多应用实例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。
本书内容,概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。
目录
目录
第1章 UNIX基础知识 1
1.1 引言 1
1.2 UNIX体系结构 1
1.3 登录 1
1.4 文件和目录 3
1.5 输入和输出 6
1.6 程序和进程 8
1.7 出错处理 11
1.8 用户标识 13
1.9 信号 14
1.10 时间值 16
1.11 系统调用和库函数 17
1.12 小结 18
习题 18
第2章 UNIX标准及实现 20
2.1 引言 20
2.2 UNIX标准化 20
2.2.1 ISO C 20
2.2.2 IEEE POSIX 21
2.2.3 Single UNIX Specification 25
2.2.4 FIPS 26
2.3 UNIX系统实现 26
2.3.1 SVR4 27
2.3.2 4.4BSD 27
2.3.3 FreeBSD 28
2.3.4 Linux 28
2.3.5 Mac OS X 28
2.3.6 Solaris 28
2.3.7 其他UNIX系统 29
2.4 标准和实现的关系 29
2.5 限制 29
2.5.1 ISO C限制 30
2.5.2 POSIX限制 31
2.5.3 XSI限制 33
2.5.4 函数sysconf、pathconf和fpathconf 33
2.5.5 不确定的运行时限制 40
2.6 选项 43
2.7 功能测试宏 46
2.8 基本系统数据类型 47
2.9 标准之间的冲突 48
2.10 小结 48
习题 48
第3章 文件I/O 49
3.1 引言 49
3.2 文件描述符 49
3.3 函数open和openat 50
3.4 函数creat 52
3.5 函数close 53
3.6 函数lseek 53
3.7 函数read 57
3.8 函数write 57
3.9 I/O的效率 58
3.10 文件共享 59
3.11 原子操作 62
3.12 函数dup和dup2 63
3.13 函数sync、fsync和fdatasync 65
3.14 函数fcntl 65
3.15 函数ioctl 70
3.16 /dev/fd 71
3.17 小结 72
习题 72
第4章 文件和目录 74
4.1 引言 74
4.2 函数stat、fstat、fstatat和lstat 74
4.3 文件类型 75
4.4 设置用户ID和设置组ID 78
4.5 文件访问权限 79
4.6 新文件和目录的所有权 80
4.7 函数access和faccessat 81
4.8 函数umask 82
4.9 函数chmod、fchmod和fchmodat 84
4.10 粘着位 87
4.11 函数chown、fchown、fchownat和lchown 87
4.12 文件长度 89
4.13 文件截断 90
4.14 文件系统 90
4.15 函数link、linkat、unlink、unlinkat和remove 93
4.16 函数rename和renameat 95
4.17 符号链接 96
4.18 创建和读取符号链接 99
4.19 文件的时间 99
4.20 函数futimens、utimensat和utimes 101
4.21 函数mkdir、mkdirat和rmdir 103
4.22 读目录 104
4.23 函数chdir、fchdir和getcwd 108
4.24 设备特殊文件 110
4.25 文件访问权限位小结 112
4.26 小结 113
习题 113
第5章 标准I/O库 115
5.1 引言 115
5.2 流和FILE对象 115
5.3 标准输入、标准输出和标准错误 116
5.4 缓冲 116
5.5 打开流 118
5.6 读和写流 120
5.7 每次一行I/O 122
5.8 标准I/O的效