第1章 基本概念和术语 1
1.1 文件 1
1.2 进程 3
1.3 系统调用和库函数 3
第2章 文件 5
2.1 UNIX文件访问原语 5
2.2 标准输入、标准输出和标准错误 21
2.3 标准I/O库 24
2.4 errno变量和系统调用 27
第3章 文件与上下文环境 28
3.1 多用户环境下的文件 28
3.2 多名字文件 35
3.3 使用stat和fstat获得文件信息 37
第4章 目录、文件系统和特殊文件 43
4.1 简介 43
4.2 从用户角度来看目录 43
4.3 目录的实现 45
4.4 对目录编程 48
4.5 UNIX文件系统 56
4.6 UNIX设备文件 58
第5章 进程 63
5.1 进程概念的回顾 63
5.2 创建进程 64
5.3 使用exec运行新程序 66
5.4 将exec和fork一起使用 70
5.5 继承的数据与文件描述符 73
5.6 使用exit系统调用终止进程 75
5.7 同步进程 76
5.8 僵进程与提前退出 79
5.9 smallsh:一个命令处理器 79
5.10 进程的属性 85
第6章 信号和信号处理 93
6.1 简介 93
6.2 信号处理 97
6.3 信号阻塞 105
6.4 发送信号 106
第7章 使用管道进行进程间通信 113
7.1 管道 113
7.2 FIFO或命名管道 130
第8章 高级进程间通信 136
8.1 简介 136
8.2 纪录锁 136
8.3 高级IPC机制 144
第9章 终端 167
9.1 简介 167
9.2 UNIX终端 169
9.3 从程序的角度看 172
9.4 伪终端 184
9.5 终端处理例子:tscript 187
第10章 套接字 193
10.1 简介 193
10.2 连接类型 193
10.3 寻址 194
10.4 套接字接口 195
10.5 面向连接的编程模型 195
10.6 面向无连接的编程模型 204
10.7 两种模型间的区别 207
第11章 标准I/O库 208
11.1 简介 208
11.2 FILE结构 208
11.3 打开和关闭文件流:fopen和 fclose 209
11.4 单字符I/O:getc和putc 210
11.5 将字符放回文件流:ungetc 212
11.6 标准输入、标准输出和标准错误 213
11.7 标准I/O状态例程 214
11.8 行输入和输出 215
11.9 二进制输入和输出:fread和fwrite 217
11.10 随机文件访问:fseek,rewind和ftell 219
11.11 格式化输出:printf族 220
11.12 格式化输入:scanf族 224
11.13 使用标准I/O库运行程序 227
11.14 各种调用 232
第12章 其他系统调用和库函数 234
12.1 简介 234
12.2 动态内存管理 234
12.3 内存映射I/O和内存操作 239
12.4 时间 242
12.5 字符率和字符处理 244
12.6 其他工具 247
附录A errno错误代码和相关信息 249
附录B 主要标准 253