第一章 OS/2概述 5
1.1 操作系统的简要历史 5
1.2 批处理系统 5
1.3 OS/2特性 9
1.4 程序员如何使用OS/2 16
1.5 本章概要 18
第二章 准备过程 18
2.1 建立OS/2环境 18
2.2 简单的OS/2程序 23
2.3 本章概要 36
第三章 键盘与显示屏幕 37
3.1 写屏幕 37
3.2 光标 42
3.3 读屏幕 47
3.4 滚行 48
3.5 键盘 50
3.6 视频模式 57
3.7 本章概要 65
第四章 进程 66
4.1 一父一子的进程 66
4.2 多子进程的父进程 70
4.3 获悉子进程何时结束 72
4.4 向子进程传送参数 75
4.5 父进程与孪生进程 77
4.6 优先级 81
4.7 后台进程 83
4.8 关于进程的进一步思考 87
4.9 小结 88
第五章 并发函数 88
5.1 创建并发函数 88
5.2 从单个并发函数中退出 93
5.3 局部和全局变量 95
5.4 从多个并发函数中访问同一个函数 96
5.5 共享代码 101
5.6 挂起并发函数 106
5.7 中途退出 108
5.8 并发函数应用的例子 111
5.9 小结 119
第六章 并发信号 119
6.1 进程间通信协调问题 119
6.2 并发信号标志 122
6.3 并发函数之间发信操作 131
6.4 系统并发信号标志 143
6.5 死锁 154
6.6 小结 157
第七章 文件目录 158
7.1 目录操作 158
7.2 文件操作 163
7.3 查找文件 167
7.4 文件属性 178
7.5 查找一个已知文件的路径 181
7.6 小结 184
第八章 文件 185
8.1 文件的读和写 185
8.2 文件信息 196
8.3 其它文件函数 203
8.4 总结 207
第九章 文件与多道作业 208
9.1 同时读和分析 208
9.2 同时读和显示 222
9.3 进程间共享文件 226
9.4 总结 236
第十章 内存管理与操作 236
10.1 为什么分配内存 236
10.2 MS-DOS和OS/2的区别 237
10.3 内存和硬件 237
10.4 简单的段分配 241
10.5 分配多重段 246
10.6 虚拟内存 248
10.7 内存分配 250
10.8 巨型目标 252
10.9 改变段的大小 259
10.10 段中再分配的内存块 262
10.11 丢弃与加锁的段 266
10.12 代码段的别名 268
10.13 小结 270
第十一章 进程间的通讯 271
11.1 什么时候使用什么 271
11.2 共享内存 272
11.3 管道 283
11.4 队列 291
11.5 小结 307
第十二章 监控程序与信号 308
12.1 设备监控器 308
12.2 TRS的OS/2方法 308
12.3 监控器与多任务 309
12.4 键盘输入的数据路径 309
12.5 监控器应用程序的组织 310
12.6 读/写数据包 310
12.7 删除监控器 311
12.8 一个简单的监控器应用程序 312
12.9 Kbdmon·h头文件 314
12.10 键盘输入包 314
12.11 monflc程序的操作 316
12.12 给数据流增加若干包:montime·c 319
12.13 危险与责任 325
12.14 信号 325
12.15 小结 332
第十三章 鼠标与图形 333
13.1 鼠标 333
13.2 图形 348
13.3 小结 362
第十四章 362
14.1 动态链接基础 363
14.2 装入期动态链接 367
14.3 运行期链接 372
14.4 例子与全程数据 375
14.5 初始化例程 380
14.6 小结 383