《Windows系统编程 原书第3版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)Johnson M. Hart著;安娜,吴明军译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2006
  • ISBN:7111177010
  • 页数:394 页
图书介绍:本书介绍了核心系统服务的API功能。

目录 1

译者序 1

前言 1

第1章 Win32和Win64基础 1

1.1 操作系统基础 1

1.2 Windows的演化 2

1.3 Windows版本 2

1.4 Windows的市场角色 4

1.5 Windows、标准和开放系统 5

1.6 Windows原则 6

1.7 准备Win64 7

1.8 标准C库:何时用于文件处理 8

1.9 使用本书需要具备的条件 9

1.10 范例:复制简单的顺序文件 9

1.11 总结 13

1.12 练习 15

第2章 使用Windows文件系统和字符I/O 16

2.1 Windows文件系统 16

2.2 文件命名 17

2.3 打开、读取、写入和关闭文件 17

2.4 插曲:Unicode和通用字符 22

2.5 Unicode策略 24

2.6 标准设备和控制台I/O 24

2.7 范例:打印和提示 27

2.8 范例:错误处理 29

2.9 范例:复制多个文件到标准输出 30

2.10 范例:ASCⅡ到Unicode的转换 32

2.11 文件和目录管理 33

2.13 总结 37

2.12 范例:打印当前目录 37

2.14 练习 38

第3章 高级文件和目录处理以及注册表 40

3.1 64位文件系统 40

3.2 文件指针 40

3.3 获取文件大小 43

3.4 范例:随机记录更新 44

3.5 文件属性和目录处理 46

3.6 装载点 50

3.7 范例:列出文件属性 50

3.8 范例:设置文件时间 53

3.9 文件处理策略 54

3.10 文件锁定 54

3.11 注册表 57

3.12 注册表管理 58

3.13 范例:显示注册表关键字和内容 62

3.14 总结 65

3.15 练习 65

第4章 异常处理 67

4.1 异常及其处理器 67

4.2 浮点异常 72

4.3 错误和异常 73

4.4 范例:将错误当做异常 74

4.5 终止处理器 76

4.6 范例:使用终止处理器来提高程序质量 78

4.7 范例:使用过滤函数 81

4.8 控制台控制处理器 83

4.9 范例:一个控制台控制处理器 84

4.10 矢量异常处理 86

4.12 练习 87

4.11 总结 87

第5章 内存管理、内存映射文件和DLL 88

5.1 Win32和Win64内存管理架构 88

5.2 堆 90

5.3 管理堆内存 92

5.4 范例:使用二分查找树来排序文件 95

5.5 内存映射文件 99

5.6 范例:对映射文件进行顺序文件处理 104

5.7 范例:排序内存映射文件 105

5.8 范例:使用基准指针 107

5.9 动态链接库 111

5.10 范例:显式链接文件转换函数 115

5.11 DLL入口点 116

5.12 DLL版本管理 117

5.14 练习 118

5.13 总结 118

第6章 进程管理 120

6.1 Windows进程和线程 120

6.2 进程创建 121

6.3 进程句柄计数 126

6.4 进程标识 126

6.5 复制句柄 127

6.6 退出及终止进程 128

6.7 等待进程终止 129

6.8 环境块和字符串 130

6.9 范例:并发模式查找 131

6.10 多处理器环境下的进程 134

6.11 进程执行时间 134

6.12 范例:进程执行时间 134

6.13 产生控制台控制事件 136

6.14 范例:简单任务管理 137

6.15 任务对象 144

6.16 总结 145

6.17 练习 146

第7章 线程和调度 147

7.1 线程概览 147

7.2 线程基础 148

7.3 线程管理 149

7.4 在线程中使用C库 152

7.5 范例:多线程模式查找 153

7.6 性能影响 155

7.7 老板/工人和其他线程模型 156

7.8 范例:归并排序——使用SMP分而治之 157

7.9 线程局部存储 160

7.10 进程和线程优先级和调度 161

7.11 线程状态 163

7.12 缺陷和常见错误 164

7.13 计时等待 165

7.14 纤程 165

7.15 总结 167

7.16 练习 168

第8章 线程同步 170

8.1 线程同步的需要 170

8.2 线程同步对象 173

8.3 CRITICAL_SECTION对象 174

8.4 保护共享变量的CRITICAL_SECTION 175

8.5 范例:简单生产者/消费者系统 176

8.6 互斥 180

8.7 信号量 184

8.8 事件 186

8.9 范例:生产者/消费者系统 188

8.10 更多的互斥和CRITICAL_SECTION指南 191

8.11 更多的互锁函数 192

8.12 内存管理性能考虑 193

8.13 总结 193

8.14 练习 194

第9章 同步性能影响和指南 195

9.1 同步性能影响 195

9.2 性能试验的范例程序 198

9.3 使用CS自旋计数器调节SMP性能 198

9.4 信号量“扼杀”以减少线程竞争 200

9.5 处理器亲缘关系 202

9.6 I/O完成端口 203

9.8 总结 204

9.7 性能指南和缺陷 204

9.9 练习 205

第10章 高级线程同步 206

10.1 条件变量模型和安全属性 206

10.2 使用SignalObjectAndWait 210

10.3 范例:门限阻碍对象 211

10.4 队列对象 214

10.5 范例:在多阶段管道中使用队列 218

10.6 异步过程调用 224

10.7 异步过程调用排队 225

10.8 可变等待状态 226

10.9 安全线程取消 227

10.10 Pthreads用于程序可移植性 227

10.11 线程堆栈和线程数量 227

10.12 设计、调试和测试的提示 228

10.14 总结 229

10.13 访问内核对象的其他方法 229

10.15 练习 230

第11章 进程间通信 232

11.1 异步管道 232

11.2 范例:使用异步管道的I/O重定向 233

11.3 命名管道 235

11.4 命名管道事务函数 240

11.5 范例:客户端/服务器命令行处理器 242

11.6 关于客户端/服务器命令行处理器的注释 247

11.7 邮槽 248

11.8 管道和邮槽的创建、连接和命名 251

11.9 范例:客户端可以定位的服务器 251

11.10 关于线程模型的注释 253

11.12 练习 254

11.11 总结 254

第12章 使用Windows套接字进行网络编程 255

12.1 Windows套接字 255

12.2 套接字服务器函数 257

12.3 套接字客户端函数 260

12.4 对比命名管道和套接字 262

12.5 范例:套接字消息接收函数 262

12.6 范例:基于套接字的客户端 263

12.7 范例:带有新特性的基于套接字的服务器 265

12.8 进程内服务器 270

12.9 面向行的消息、DLL入口点和TLS 271

12.10 范例:套接字消息的线程级安全DLL 272

12.11 范例:可选的线程级安全DLL策略 276

12.12 数据报 278

12.13 Berkeley套接字与Windows套接字 278

12.16 总结 279

12.15 Windows Sockets 2 279

12.14 使用Windows套接字的重叠I/O 279

12.17 练习 280

第13章 Windows服务 282

13.1 编写Windows服务概览 282

13.2 main()函数 283

13.3 ServiceMain()函数 284

13.4 服务控制处理器 287

13.5 范例:服务“包装器” 288

13.6 管理Windows服务 290

13.7 小结:服务操作和管理 293

13.8 范例:服务控制shell 294

13.9 与服务共享内核对象 296

13.11 有关调试服务的注意点 297

13.12 总结 297

13.10 事件日志 297

13.13 练习 298

第14章 异步输入/输出和完成端口 299

14.1 Windows异步I/O概览 299

14.2 重叠I/O 300

14.3 范例:同步文件句柄 303

14.4 范例:使用重叠I/O和多个缓存进行文件转换 303

14.5 使用完成例程的扩展I/O 307

14.6 范例:使用扩展I/O来进行文件转换 310

14.7 线程异步I/O 312

14.8 可等待计时器 313

14.9 范例:使用可等待计时器 314

14.10 I/O完成端口 315

14.11 范例:使用I/O完成端口的服务器 318

14.12 总结 321

14.13 练习 322

第15章 Windows对象安全 323

15.1 安全属性 323

15.2 安全概览:安全描述符 324

15.3 安全描述符控制标记 326

15.4 安全标识符 326

15.5 管理ACL 328

15.6 范例:NTFS文件的UNIX风格权限 329

15.7 范例:初始化安全属性 332

15.8 读取和更改安全描述符 334

15.9 范例:读取文件权限 336

15.10 范例:更改文件权限 337

15.11 内核和通信对象安全 338

15.12 范例:进程及其线程安全 340

15.13 其他安全属性概览 340

15.14 总结 341

15.15 练习 342

第16章 Win64编程 344

16.1 Win64进展 344

16.2 64位架构概览 345

16.3 Win64编程模型 346

16.4 数据类型 347

16.5 遗留代码移植 349

16.6 范例:移植sortMM(程序5-5) 350

16.7 总结 353

16.8 练习 353

附录A 使用范例程序 354

附录B Windows、UNIX和C库的比较 368

附录C 性能结果 382

参考文献 392