第一章绪论 1
第一节UNIX概述 1
一、UNIX的历史与发展 1
目录 1
二、UNIX的其它版本 2
三、UNIX的特点 2
四、UNIX的结构 3
第二节UNIX的标准化 5
一、UNIX标准化的必要性 5
二、SVID标准 5
第三节基本概念 6
一、文件系统 6
三、POSIX规范 6
二、进程 8
三、系统调用和库例行程序 8
第二章C程序设计语言 10
第一节C语言概述 10
一、C语言的发展 10
二、C语言程序实例 11
三、基本数据类型 11
四、运算符 12
五、数据输入与输出 14
第二节基本语句 17
一、条件语句 17
二、循环语句 17
三、开关语句 18
四、转跳和继续语句 19
第三节预处理程序 20
一、符号常数 20
二、宏代换 20
三、文件蕴含 20
四、条件编译 21
第四节函数 21
一、函数的一般形式 21
二、函数的参数 22
三、函数的返回值 24
四、变量存贮类型 25
一、指针 26
第五节指针与结构 26
五、递归 26
二、指针和数组 27
三、二维数组和指针 28
四、结构 29
五、指向结构的指针 29
第三章文件操作 31
第一节文件的基本操作 31
一、概述 31
二、文件的打开 32
三、文件的建立与关闭 35
四、文件的读和写 36
五、文件的随机访问 41
六、系统调用unlink和fcntl 43
一、标准输入和输出 45
第二节标准输入、输出和标准I/O库 45
二、标准错误 46
三、标准I/O库概况 47
四、错误代码变量errno 49
第三节多用户环境中的文件 50
一、文件主与有关标识符 50
二、文件权限和模式 51
三、文件权限与系统调用 53
四、文件可访问性的检测 54
五、文件权限和文件主的改变 55
六、文件建立屏蔽标记 56
二、文件链的建立 57
第四节文件的链接 57
一、概述 57
三、文件链的删除 58
四、文件系统信息的获取 59
第四章文件系统 64
第一节文件系统概述 64
第二节文件目录 64
一、目录与SVID 64
二、目录的用户观点 64
三、目录的实现 66
第三节目录的程序设计 69
一、目录项数据结构 69
二、当前目录的改变 72
三、目录的建立 73
四、根目录的改变 75
五、目录树的扫描 76
第四节文件卷和特殊文件 78
一、文件卷概述 78
二、文件卷的装卸 79
三、缓冲存贮和系统调用sync 80
四、UNIX的特殊文件 80
五、块设备文件和字符设备文件 81
六、特殊文件与stat结构 82
二、进程的建立 85
一、进程的概念 85
第一节进程的建立与运行 85
第五章 进程控制 85
三、进程的运行 87
四、数据和文件描述符的继承 93
第二节进程的控制操作 96
一、进程的终止 96
二、进程的同步 96
三、进程终止的特殊情况 98
四、进程控制的实例 98
第三节进程的属性 103
一、进程标识符 103
二、进程的组标识符 105
三、进程环境 106
四、进程的当前目录 108
五、进程的有效标识符 109
六、进程的文件长度限制 109
七、进程的优先数 110
第六章进程通信 111
第一节引言 111
一、进程之间的通信 111
二、新的进程通信机构 111
第二节信号通信机构 111
一、信号及其类型 111
二、信号的处理 114
三、信号与系统调用的关系 117
四、信号的复位 118
五、用kill发送信号 119
六、系统调用alarm和pause 122
七、例行程序setjmp和longjmp 125
第三节管道通信机构 126
一、管道概述 126
二、管道的程序设计 127
三、管道的长度和管道的关闭 131
四、管道中的read和write 133
五、管道与系统调用exec 136
第四节FIFO通信机构 138
一、FIFO及其应用 138
二、FIFO的程序设计 140
一、记录锁定的引出 142
第五节记录锁定 142
二、用lockf实现记录锁定 143
三、用fcntl实现记录锁定 148
第六节IPC通信机构 151
一、基本概念 151
二、消息的传送 152
三、信号量 161
四、共享存贮器 168
五、与IPC有关的命令 174
一、终端驱动程序 175
二、系统与终端之间的关系 175
第一节引言 175
第七章终端管理 175
第二节UNIX中的终端 176
一、概述 176
二、控制终端 177
三、数据传输 177
四、正则模式和编辑功能 178
第三节终端的程序设计 179
一、终端的打开与读写 179
二、例行程序ttyname和isatty 182
三、终端特性的改变 183
四、参数MIN和TIME 186
五、终端控制 188
第四节程序connect的设计 190
一、总体描述 190
六、终端与SIGHUP信号 190
二、标题文件和main函数 191
三、函数connect 194
四、文件传输例行程序 198
五、connect的使用 202
第五节终端管理的发展 203
一、数据结构的变化 203
二、流的概念的提出 203
第八章标准I/O库 205
第一节引言 205
第二节流与流操作 205
一、流和FILE结构 205
三、流的单字符I/O 206
二、流的打开与关闭 206
四、恢复流的字符 209
第三节标准输入输出与流 211
一、标准输入输出和标准错误 211
二、标准I/O状态的查询 212
三、行输入与行输出 213
四、二进制输入与输出 216
五、随机文件访问 218
第四节格式输入与输出 219
一、格式输出 219
二、格式输入 224
第五节程序的执行与其它 226
一、程序的执行 226
二、其它标准I/O例行程序 232
第一节屏幕处理库概述 234
一、引言 234
第九章屏幕处理和其它 234
二、curses库 235
三、curses程序的通用结构 235
四、terminfo库 236
第二节curses例行程序 237
一、模式的设置 237
二、写字符和字符串 238
三、格式输出 239
四、光标的移动 240
五、键盘输入 241
七、屏幕编辑 243
六、屏幕字符的读入 243
八、视频属性的设置 246
九、窗口的建立和操作 247
十、程序domenu 247
第三节动态存贮管理 251
一、动态存贮器分配与释放 251
二、动态存贮器分配实例 253
三、系统调用brk和sbrk 256
第四节时间和字符处理 257
一、时间处理 257
二、字符串和字符处理 259
附录A errno出错代码与信息 263
附录B UNIX系统的主要标题文件 267