第一篇 C语言参考手册 3
第一章 引论 3
1.1 C语言概述 3
1.2 关于本手册 4
1.3 标记约定 5
第二章 C语言的元素 7
2.1 引言 7
2.2 字符集 7
2.3 常量 11
2.4 标识符 15
2.5 关键字 16
2.6 注解 16
2.7 单词 17
第三章 程序结构 19
3.1 引言 19
3.2 源程序 19
3.3 源文件 20
3.4 函数和程序执行 22
3.5 生存期和可见性 22
3.6 命名不同的类 25
第四章 声明 27
4.1 引言 27
4.2 类型区分符 27
4.3 声明符 31
4.4 变量声明 35
4.5 函数声明(原型) 45
4.6 存储类 49
4.7 初始化 53
4.8 类型声明 57
4.9 类型名 59
第五章 表达式和赋值 60
5.1 引言 60
5.2 C语言的运算对象 60
5.3 C语言算符 67
5.4 赋值算符 78
5.5 优先级和运算顺序 80
5.6 类型转换 82
第六章 语句 87
6.1 引言 87
6.2 break语句 87
6.3 复合语句 88
6.4 continue语句 88
6.5 do语句 89
6.6 表达式语句 90
6.7 for语句 90
6.8 goto和带标号的语句 91
6.9 if语句 92
6.10 空语句 93
6.11 return语句 94
6.12 switch语句 95
6.13 while语句 97
第七章 函数 98
7.1 引言 98
7.2 函数定义 99
7.3 函数原型声明 105
7.4 函数调用 107
第八章 预处理程序指令和编译标记 112
8.1 引言 112
8.2 显式常量和宏 113
8.3 包含文件 118
8.4 条件编译 119
8.5 行控制 122
8.6 编译标记 123
附录A K&RC语言与Microsoft C语言之间的区别 124
附录B 语法汇总 127
第二篇 C语言库指南 141
第一章 引论 141
1.1 关于C语言库 141
1.2 关于本指南 141
1.3 标记约定 142
第二章 使用C语言库例程 144
2.1 引言 144
2.2 标识函数和宏 144
2.3 包含文件 145
2.4 声明函数 146
2.5 入口时进行栈核查 146
2.6 实参类型核查 146
2.7 出错处理 147
2.8 文件名和路径名 148
2.9 浮点支持 148
2.10 随库函数使用超大型数组 149
第三章 全局变量和标准类型 151
3.1 引言 151
3.2 daylight,timezone和tzname变量 151
3.3 errno,sys_errlist,sys_nerr 152
3.4 environ 152
3.5 标准类型 152
第四章 运行时例程的类别 154
4.1 引言 154
4.2 缓冲区管理 154
4.3 字符的分类和转换 154
4.4 数据库管理例程 155
4.5 数据转换 155
4.6 目录操作 156
4.7 文件处理 156
4.8 组文件和口令文件的控制例程 157
4.9 输入和输出例程 158
4.10 数学例程 160
4.11 存储分配 161
4.12 消息控制例程 162
4.13 管道 162
4.14 进程控制 163
4.15 随机数生成 164
4.16 屏幕处理 164
4.17 搜索和排序 165
4.18 信号灯控制例程 166
4.19 共享内存例程 166
4.20 字符串操作 167
4.21 系统记帐控制 168
4.22 终端控制例程 168
4.23 时间控制例程 168
4.24 其它例程 169
第五章 包含文件 171
5.1 引言 171
5.2 /usr/include文件 171
5.3 /usr/include/sys文件 176
第六章 使用标准的I/O函数 182
6.1 引言 182
6.2 使用命令行实参 183
6.3 使用标准文件 184
6.4 使用数据流函数 188
6.5 更多地使用数据流函数 197
6.6 使用低级函数 199
6.7 使用文件描述字 200
6.8 使用termio和ioctl()控制终端行 206
第七章 屏幕处理 211
7.1 引言 211
7.2 准备屏幕 215
7.3 使用标准屏幕 217
7.4 创建和使用窗口 223
7.5 使用其它的窗口函数 233
7.6 光标移动与动作组合 236
7.7 控制终端 236
7.8 高级专题 239
第八章 字符和字符串处理 241
8.1 引言 241
8.2 使用字符函数 241
8.3 判断标点符号 244
8.4 使用字符串函数 245
第九章 使用进程控制 250
9.1 引言 250
9.2 使用进程 250
9.3 调用一个程序 250
9.4 终止一个程序 251
9.5 启动一个新程序 252
9.6 通过shell执行一个程序 254
9.7 复制一个进程 254
9.8 等待一个进程 255
9.9 继承打开的文件 255
9.10 程序举例 256
第十章 使用事件管理程序 257
10.1 引言 257
10.2 使用事件管理程序 257
10.3 事件 258
10.4 事件管理程序调用 260
10.5 配置文件 263
10.6 事件管理程序C语言定义和语法 265
10.7 事件管理程序C语法汇总 266
10.8 一个样本程序 270
第十一章 编写和使用管道 274
11.1 引言 274
11.2 为新进程打开管道 274
11.3 对进程读取和写入 275
11.4 关闭管道 275
11.5 打开低级管道 276
11.6 程序举例 277
11.7 命名的管道 279
第十二章 使用系统资源 281
12.1 引言 281
12.2 分配内存 281
12.3 文件锁定概述 286
12.4 在XENIX下封锁文件 287
12.5 在UNIX系统V下封锁文件 288
12.6 消息操作 298
12.7 信号灯概述 321
12.8 在XENIX下使用信号灯 321
12.9 在UNIX系统V下使用信号灯 326
12.10 获取信号灯 330
12.11 共享内存概述 349
12.12 使用共享内存 349
12.13 在UNIX系统V下使用共享内存 355
12.14 共享内存的数据结构 356
附录A 库例程出错值 374
附录B 公用库 379
附录C XENIX到DOS:交叉开发系统 391