序 1
前言 3
第一章 介绍与基本概念 11
系统编程 12
API与ABI 14
标准 16
Linux编程的概念 19
向系统编程迈进 32
第二章 文件I/O 33
打开文件 34
以read()进行读取操作 40
以write()进行写入操作 44
同步化I/O 48
关闭文件 52
使用lseek()查找文件位置 53
针对特定位置的读取与写入 55
截短文件 57
多任务式I/O 58
内核内部 69
结束语 73
第三章 缓冲式I/O 74
用户缓冲式I/O 74
标准I/O 76
打开文件 77
经文件描述符打开流 78
关闭流 79
从流中读取 79
使用缓冲式I/O的简单程序 85
查找一个流 86
刷新一个流 88
错误与EOF 89
取得相应的文件描述符 90
控制与缓冲机制 90
线程安全 92
标准I/O的缺陷 94
结束语 95
第四章 高级文件I/O 96
分散—聚集I/O 97
事件轮询接口 102
将文件映射至内存 108
对一般文件I/O的用法提供建议 123
同步化、同步及异步操作 126
I/O调度程序与I/O性能 129
结束语 140
第五章 进程管理 141
进程ID 141
运行一个新进程 144
终止一个进程 152
等待已终止的子进程 155
用户与组 165
会话与进程组 170
守护进程 175
结束语 177
第六章 高级进程管理 178
进程的调度 178
让出处理器 182
进程优先级 185
实时系统 192
资源限制 206
第七章 文件和目录管理 213
文件与其元数据 213
目录 230
链接 242
文件的复制以及移动 248
设备节点 251
带外通信 253
第八章 内存管理 264
进程地址空间 264
分配动态内存 266
管理数据段 277
匿名内存映射 277
高级内存分配 282
调试内存分配 285
基于堆栈的分配 286
选择内存分配机制 290
操作内存 291
锁定内存 295
投机取巧的分配策略 299
第九章 信号 302
信号的概念 303
基本的信号管理 309
发送一个信号 314
可重入性 317
信号集 320
阻挡信号 321
高级信号管理 323
以payload送出信号 331
结束语 332
第十章 时间 333
时间的数据结构 335
POSIX时钟 339
取得当前时间 340
设定当前时间 344
操作时间 346
调整系统时钟 347
休眠与等待 351
定时器 357
附录 GCC对C语言的扩展 367
参考书目 379