第1章 绪论 1
1.1 引言 1
1.2 登录 1
1.3 文件和文件系统 2
1.4 程序与进程 3
1.5 系统调用和库函数 5
1.6 习题 6
第2章 文件基本操作 7
2.1 引言 7
2.2 文件的创建与删除 8
2.2.1 creat系统调用 8
2.2.2 creat应用实例 9
2.2.3 unlink系统调用 10
2.2.4 unlink应用实例 10
2.2.5 用creat系统调用实现互斥访问 11
2.3 文件的打开与关闭 13
2.3.1 open系统调用 13
2.3.2 open应用实例 14
2.3.3 close系统调用 15
2.3.4 close应用实例 16
2.4 文件的读/写操作 17
2.4.1 read系统调用 17
2.4.2 write系统调用 18
2.4.3 实例设计 18
2.5 文件的随机存取 20
2.5.1 lseek系统调用 20
2.5.2 lseek应用实例 21
2.6 综合应用实例 22
2.7 习题 24
第3章 文件高级操作 25
3.1 引言 25
3.2 文件的保护与控制 25
3.2.1 文件保护 26
3.2.2 文件控制 29
3.3 目录文件管理 39
3.3.1 目录的创建和删除——mkdir和 rmdir系统调用 39
3.3.2 目录的改变和链接——chdir、chroot和link系统调用 43
3.3.3 目录的读取——getdents系统调用 46
3.4 文件信息查询 48
3.4.1 文件状态信息的获取——stat与fstat系统调用 48
3.4.2 文件系统状态信息的获取 51
3.5 综合应用实例 54
3.6 习题 61
第4章 设备文件操作 63
4.1 引言 63
4.1.1 设备及设备文件 63
4.1.2 主、从设备号 64
4.1.3 设备文件操作——mknod和iotcl系统调用 64
4.2 终端设备文件操作 67
4.2.1 终端设备文件基本操作 67
4.2.2 终端设备文件控制操作 68
4.3 习题 72
第5章 进程控制 73
5.1 引言 73
5.1.1 fork系统调用 73
5.1.2 exec系统调用 78
5.1.3 exit、wait和nice系统调用 83
5.2 进程标识号及其用户标识号管理 88
5.2.1 进程的用户标识号管理 88
5.2.2 进程标识号管理 90
5.3 综合应用实例 92
5.4 习题 96
第6章 进程基本通信 97
6.1 引言 97
6.1.1 signal系统调用 98
6.1.2 pause、kill系统调用 101
6.2 跟踪机制 104
6.2.1 ptrace系统调用 104
6.2.2 ptrace系统调用实例设计 105
6.3 管道通信 106
6.3.1 dup系统调用 107
6.3.2 管道文件操作 108
6.3.3 管道通信应用实例 113
6.4 习题 123
第7章 进程高级通信机制 125
7.1 引言 125
7.2 消息通信 126
7.2.1 消息通信系统调用 127
7.2.2 消息通信应用实例 129
7.3 共享内存段 135
7.3.1 共享内存段系统调用 136
7.3.2 共享内存段应用实例 138
7.4 信号量 141
7.4.1 信号量系统调用 142
7.4.2 信号量应用实例 144
7.5 习题 148
第8章 STREAMS机制 149
8.1 引言 149
8.1.1 STREAMS机制的产生 149
8.1.2 STREAMS的特征与结构 149
8.1.3 STREAMS的应用 151
8.2 流基本操作 151
8.2.1 流的建立和关闭 152
8.2.2 流的读/写 154
8.3 流的高级操作 155
8.3.1 流组操作 156
8.3.2 多路流操作 160
8.3.3 消息处理 165
8.4 习题 173
第9章 系统管理 175
9.1 引言 175
9.2 时间管理 175
9.2.1 系统时间管理——time和stime系统调用 176
9.2.2 用户时间管理——times系统调用 178
9.2.3 设置文件访问、修改时间及进程报警时钟 180
9.3 文件管理系统 181
9.4 动态存储分配 183
9.5 系统和用户信息统计 185
9.5.1 系统统计信息——acct系统调用 186
9.5.2 直方图的实现——profil系统调用 186
9.6 其他系统管理操作 187
第10章 线程 189
10.1 引言 189
10.2 基本概念 189
10.3 简单示例 190
10.4 线程函数 192
10.4.1 线程创建 192
10.4.2 线程终止 192
10.4.3 线程同步 193
10.5 综合示例 198
10.6 习题 204
第11章 网络Socket编程 205
11.1 引言 205
11.2 套接字描述符 205
11.3 寻址 207
11.3.1 字节序 207
11.3.2 地址格式 208
11.3.3 地址查询 209
11.3.4 将套接字与地址绑定 211
11.4 建立连接 212
11.5 数据传输 214
11.6 综合示例 215
11.7 习题 219
参考文献 220