Windows系统编程(原书第三版)

Windows系统编程(原书第三版)
作 者: 哈特 安娜 吴明军 安娜
出版社: 机械工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Windows
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  哈特(Johnson M.Hart)是Windows、Linux和UNIX程序开发、增强和维护方面的培训和咨询专家,他曾在世界各地开办专业培训课程并发表演讲,同时他还发表了许多技术文章。

内容简介

本书重点突出,是Windows API核心特性和功能的实践指导材料。不像许多其人Win-dows编程资源,本书着重探讨Windows 核心系统服务,如文文件系统、内存、进程和线程、同步、通信以及安全性,新修订版中涵盖了新的API函数、网络编程、Windows服务、进程和线程管理、同步以及单处理器和多处理器的程序性能,同时还描述了如何Win64移植程序。作为WindowsAPI核心特性和功能的实践指南,本书会吸引你徜徉于WindowsXP和2003以及其他Windows系统中。与许多其他Windows编程资源不同,本书完全专注于核心系统服务——文件系统、内存、进程和线程、同步、通信以及安全性,而不是更常见的图形用户界面功能。本书尤其适合那些已经熟悉UNIX或者其他高端操作系统的读者,阅读本书还有助于大家扎实基础,并快速而简单地学习许多重要特性。本修订版涵盖新API函数、网络编程、Windows服务、进程和线程管理、同步以及单处理器和多处理器上的程序性能,它同时还描述了向Win64(新的Windows64位 API)移植程序的技巧。从检查单进程程序所需的特性开始,本书循序渐进地介绍了和多线程环境相关的复杂函数,而且每章都会用真实范例来阐述主题。本书包含如下Windows关键主题:◎文件和目录管理◎字符I/O和Unicode◎注册表◎结构化异常处理◎安全服务◎内存管理和DLL◎线程、进程管理和调度◎线程同步,包括事件和互斥使用的条件变量模型◎进程间通信,特别是管道和邮槽◎用套接字进行网络编程◎开发Windows服务◎计时器、异步I/O和I/O完成端口◎改善程序性能和可靠性的方针,以及如何权衡两者之间的关系◎Win64,涵盖架构、数据类型和程序移植简短而真实的范例阐述了每个主题,并包含在配套Web站点(www.awprofessional.com/titles/0321256190)中。附录提供了性能测量,并对比了Windows、UNIX和C库。

图书目录

译者序

前言.

第1章Win32和Win64基础

1.1操作系统基础

1.2Windows的演化

1.3Windows版本

1.4Windows的市场角色

1.5Windows.标准和开放系统

1.6Windows原则

1.7准备Win64

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

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

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

1.11总结

1.12练习

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

2.1Windows文件系统

2.2文件命名

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

2.4插曲:Unicode和通用字符

2.5Unicode策略

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

2.7范例:打印和提示

2.8范例:错误处理

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

2.10范例:ASCII到Unicode的转换

2.11文件和目录管理

2.12范例:打印当前目录

2.13总结

2.14练习

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

3.164位文件系统

3.2文件指针

3.3获取文件大小

3.4范例:随机记录更新

3.5文件属性和目录处理

3.6装载点

3.7范例:列出文件属性

3.8范例:设置文件时间

3.9文件处理策略

3.10文件锁定

3.11注册表

3.12注册表管理

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

3.14总结

3.15练习

第4章异常处理

4.1异常及其处理器

4.2浮点异常

4.3错误和异常

4.4范例:将错误当做异常

4.5终止处理器

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

4.7范例:使用过滤函数

4.8控制台控制处理韶

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

4.10矢量异常处理

4.11总结

4.12练习

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

5.1Win32和Win64内存管理架构

5.2堆

5.3管理堆内存

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

5.5内存映射文件

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

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

5.8范例:使用基准指针

5.9动态链接库

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

5.11DLL入口点

5.12DLL版本管理

5.13总结

5.14练习

第6章进程管理

6.1Windows进程和线程

6.2进程创建

6.3进程句柄计数

6.4进程标识

6.5复制句柄

6.6退出及终止进程

6.7等待进程终止

6.8环境块和字符串

6.9范例:并发模式查找

6.10多处理器环境下的进程

6.11进程执行时间

6.12范例:进程执行时间

6.13产生控制台控制事件

6.14范例:简单任务管理

6.15任务对象

6.16总结

6.17练习

第7章线程和调度

7.1线程概览

7.2线程基础

7.3线程管理

7.4在线程中使用C库

7.5范例,多线程模式查找

7.6性能影响

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

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

7.9线程局部存储

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

7.11线程状态

7.12缺陷和常见错误

7.13计时等待

7.14纤程

7.15总结

7.16练习

第8章线程同步

8.1线程同步的需要

8.2线程同步对象

8.3CRITICAL_SECTION对象

8.4保护共享变量的CRITICAL_SECTION

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

8.6互斥

8.7信号量

8.8事件

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

8.10更多的互斥和CRITICAL_SECTION指南

8.11更多的互锁函数

8.12内存管理性能考虑

8.13总结

8.14练习

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

9.1同步性能影响..

9.2性能试验的范例程序

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

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

9.5处理器亲缘关系

9.6I/O完成端口

9.7性能指南和缺陷

9.8总结

9.9练习

第10章高级线程同步

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

10.2使用Signal()bjectAndWait

10.3范例:门限阻碍对象

10.4队列对象

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

10.6异步过程调用

10.7异步过程调用排队

10.8可变等待状态

10.9安全线程取消

10.10Pthreads用于程序可移植性

10.11线程堆栈和线程数量

10.12设计.调试和测试的提示

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

10.14总结

10.15练习

第11章进程间通信

11.1异步管道

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

11.3命名管道

11.4命名管道事务函数

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

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

11.7邮槽

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

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

11.10关于线程模型的注释

11.11总结

11.12练习

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

12.1Windows套接字

12.2套接字服务器函数

12.3套接字客户端函数

12.4对比命名管道和套接字

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

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

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

12.8进程内服务器

12.9面向行的消息.DLL人口点和TLS

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

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

12.12数据报

12.13Berkeley套接字与Windows套接字

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

12.15WindowsSockets2

12.16总结

12.17练习

第13章Windows服务

13.1编写Windows服务概览

13.2main()函数

13.3ServiceMain()函数

13.4服务控制处理器

13.5范例:服务“包装器”

13.6管理Windows服务

13.7小结:服务操作和管理

13.8范例,服务控制shell

13.9与服务共享内核对象

13.10事件日志

13.11有关调试服务的注意点

13.12总结

13.13练习

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

14.1Windows异步I/O概览

14.2重叠I/O

14.3范例:同步文件句柄

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

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

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

14.7线程异步I/O

14.8可等待计时器

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

14.10I/O完成端口

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

14.12总结

14.13练习

第15章Windows对象安全

15.1安全属性

15.2安全概览:安全描述符

15.3安全描述符控制标记

15.4安全标识符

15.5管理ACI

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

15.7范例:初始化安全属性

15.8读取和更改安全描述符

15.9范例:读取文件权限

15.10范例:更改文件权限

15.11内核和通信对象安全

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

15.13其他安全属性概览

15.14总结

15.15练习

第16章Win64编程

16.1Win64进展

16.264位架构概览

16.3Win64编程模型

16.4数据类型

16.5遗留代码移植

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

16.7总结

16.8练习...

附录A使用范例程序

附录BWindows.UNIX和C库的比较

附录C性能结果

参考文献