第1章 企业软件开发概述 1
1.1 企业软件特点 2
1.1.1 什么是企业软件 2
1.1.2 企业软件的特性 2
1.1.3 企业软件是中国软件行业发展的主要方向 3
1.1.4 企业软件开发人员缺乏 3
1.2 企业软件开发的生产线和职责定位 4
1.3 C/C++程序员的特殊要求 7
1.4 编程——简单而复杂的任务 8
1.5 英语——永不放弃的工作语言 8
1.6 关于这本书 9
第2章 基础环境 11
2.1 C/C++程序员必备的基础知识 12
2.2 虚拟机软件 13
2.2.1 VMware Server/Workstation 13
2.2.2 VMware ESX Server 14
2.3 VMware Server下安装Linux 14
2.3.1 安装VMware Server 15
2.3.2 增加Linux虚拟机 16
2.3.3 安装Linux 20
2.3.4 配置Linux 29
2.3.5 安装VMware Tools 33
2.4 Unix/Linux类操作系统 34
2.4.1 选择合适的操作系统 35
2.4.2 环境变量 36
2.4.3 常用命令 39
2.4.4 程序运行 40
2.4.5 系统参数调整 44
2.5 Windows操作系统 46
2.5.1 环境变量 46
2.5.2 注册表 47
2.5.3 开机自动运行的程序 47
2.5.4 服务程序 48
2.6 重新认识C/C++语言 48
2.6.1 预编译操作符 49
2.6.2 看懂编译错误 51
2.6.3 C/C++之间的函数调用 51
2.6.4 全局变量的定义 52
2.6.5 简单数据类型的字节大小 53
2.6.6 变量的线程安全使用 53
2.6.7 指针与数组 54
2.6.8 指向函数的指针 54
2.6.9 delete与delete[] 55
2.6.10 C++四大类基本特性 55
2.7 Oracle数据库 55
2.7.1 安装Oracle 9i for Linux 55
2.7.2 建立Oracle 9i实例 65
2.7.3 启动及停止Oracle 9i实例 68
2.7.4 Oracle基本操作 70
2.8 基础知识小结 76
第3章 程序开发基本步骤 77
3.1 需求、模型、结构设计 78
3.2 编写程序 79
3.3 编写工程文件 82
3.4 编译程序 84
3.5 运行程序 85
3.6 功能测试 86
3.7 调试程序 86
3.8 静态链接库和动态链接库 89
3.9 动态链接库和静态链接库的调试 95
3.10 基本开发步骤小结 95
第4章 常用开发工具软件 97
4.1 软件开发的常用工具 98
4.2 远程终端工具 99
4.3 集成开发环境 101
4.3.1 Unix/Linux下的集成开发环境 101
4.3.2 Windows下的集成开发环境 105
4.3.3 Windows下的IDE开发跨平台程序 106
4.4 文件分析工具 108
4.4.1 file程序 108
4.4.2 nm、ldd程序 110
4.4.3 tdump程序 111
4.4.4 depends程序 114
4.5 排错及性能分析工具 115
4.6 Oracle数据库客户端工具 116
4.6.1 SQLPlus的使用 116
4.6.2 PL/SQL Developer的使用 118
4.7 小结 124
第5章 基本函数及系统调用 125
5.1 文件操作 126
5.1.1 文件的流操作 126
5.1.2 文件的直接操作 130
5.1.3 文件的C++流操作 136
5.1.4 文件的管理 140
5.1.5 大容量文件的操作 141
5.2 时间操作 142
5.2.1 时间数据的获得 142
5.2.2 时间的延时操作 143
5.3 进程通信 145
5.3.1 共享内存 146
5.3.2 文件映射 147
5.3.3 信号灯 148
5.3.4 管道通信 168
5.4 守护进程 168
5.4.1 复制子进程 169
5.4.2 关闭标准设备 169
5.4.3 信号处理 170
5.4.4 守护进程生成流程 171
5.4.5 守护进程实例 172
5.4.6 守护进程调试 175
5.5 Win32服务进程 176
5.5.1 注册服务 177
5.5.2 服务程序入口 178
5.5.3 服务主函数入口 178
5.5.4 服务控制函数入口 179
5.5.5 报告服务状态 179
5.5.6 服务退出 179
5.5.7 服务程序运行工作流程 179
5.5.8 服务运行和调试 180
5.5.9 服务样本代码 180
5.6 动态库的动态加载 192
5.6.1 Unix/Linux下的动态加载 192
5.6.2 Windows下的动态加载 193
5.6.3 动态加载的动态库调试 194
第6章 多线程编程 195
6.1 进程与线程 196
6.1.1 进程和线程基础知识 196
6.1.2 多进程与多线程 196
6.2 Unix/Linux多线程编程接口 198
6.2.1 建立线程 199
6.2.2 终止线程 199
6.2.3 线程互斥锁 199
6.2.4 线程条件变量控制 200
6.2.5 线程编译开关 201
6.2.6 多线程安全 201
6.2.7 主动释放时间片 201
6.2.8 进程退出时结束所有线程 202
6.2.9 多线程程序调试 202
6.3 Windows多线程编程接口 202
6.3.1 建立线程 202
6.3.2 终止线程 204
6.3.3 线程临界区互斥锁 205
6.3.4 线程编译开关 206
6.3.5 多线程安全 206
6.3.6 主动释放时间片 207
6.3.7 进程退出时结束所有线程 207
6.3.8 多线程程序调试 207
6.4 常用多线程函数清单 208
6.5 多线程编程例程 209
第7章 网络通信编程 215
7.1 网络通信基础知识 216
7.1.1 IP地址、端口、域名 216
7.1.2 TCP和UDP 217
7.1.3 套接字Socket 218
7.1.4 客户端与服务端 218
7.1.5 阻塞模式和非阻塞模式 219
7.1.6 机器与网络字节顺序 219
7.1.7 网络通信相关的信号 220
7.2 TCP客户端编程 220
7.2.1 客户端程序流程 220
7.2.2 初始化 221
7.2.3 获得服务端地址信息 223
7.2.4 建立套接字 225
7.2.5 连接到服务端 225
7.2.6 设置套接字为非阻塞模式 226
7.2.7 数据发送和接收 227
7.2.8 判断套接字断开 230
7.2.9 关闭套接字 230
7.2.10 阻塞模式下的I/O轮询 230
7.3 TCP服务端编程 231
7.3.1 服务端程序流程 232
7.3.2 绑定端口 233
7.3.3 启用侦听 234
7.3.4 接受客户端连接 235
7.3.5 客户端连接的套接字处理 235
7.4 TCP编程实例 236
7.5 UDP编程 255
7.5.1 UDP和TCP特性比较 256
7.5.2 UDP程序流程 256
7.5.3 建立套接字 256
7.5.4 数据发送和接收 257
7.5.5 UDP 广播操作 258
7.5.6 UDP连接? 259
7.6 FTP客户端编程 260
7.6.1 FTP简介 260
7.6.2 Iibncftp使用简介 262
7.7 第三方网络应用接口库 265
第8章 数据库数据操作 267
8.1 Oracle OCI接口 268
8.1.1 OCI的数据映射 268
8.1.2 OCI程序开发基本步骤 269
8.1.3 初始化环境 270
8.1.4 分配句柄 271
8.1.5 登录到数据库服务器 272
8.1.6 运行数据操作语句 274
8.1.7 编译连接方法 276
8.1.8 简单样本程序 276
8.1.9 取数据输出格式信息 286
8.1.10 获得输出的数据 287
8.1.11 SQL、PL/SQL的参数输入及输出 289
8.1.12 OCI综合应用实例 292
8.1.13 LOB操作 331
8.2 Oracle OCCI接口 332
8.2.1 OCCI基本操作步骤 333
8.2.2 初始化环境 333
8.2.3 运行数据操作语句 335
8.2.4 获得输出的数据 335
8.2.5 参数输入和输出 337
8.2.6 LOB操作 338
8.2.7 OCCI综合应用实例 338
8.3 Oracle OTL接口 349
8.3.1 OTL主要特点 349
8.3.2 OTL基本操作步骤 350
8.3.3 OTL初始化 350
8.3.4 执行SQL语句 351
8.3.5 获得输出的数据 352
8.3.6 参数输入和输出 353
8.3.7 LOB操作 353
8.3.8 OTL综合应用实例 354
8.3.9 OTL多线程使用实例 360
8.4 MySQL接口 373
8.4.1 准备MySQL的客户端 373
8.4.2 MySQL客户端程序开发基本步骤 375
8.4.3 建立数据库连接 375
8.4.4 运行数据操作语句 377
8.4.5 动态SQL语句 379
8.4.6 编译连接方法 382
8.4.7 MySQL客户端综合编程实例 382
第9章 内存排错和性能分析 389
9.1 Electric Fence 390
9.2 Valgrind 391
9.3 Insure++ 397
9.4 Purify 399
9.5 BoundsChecker Error Detection 402
9.6 CodeGuard 406
9.7 Quantify 408
9.8 BoundsChecker Performance Analysis 413
9.9 其他分析工具 415
第10章 CORBA程序设计初步 417
10.1 分布式应用体系 418
10.2 CORBA组件 420
10.3 Visibroker程序设计初步 421
10.3.1 CORBA开发步骤 421
10.3.2 编辑生成IDL文件 422
10.3.3 编译IDL文件 422
10.3.4 编写客户端软件 423
10.3.5 编写服务端软件 424
10.3.6 编译与连接 427
10.3.7 运行CORBA程序 428
10.3.8 CORBA的Java客户端软件 429
10.4 小结 432