书籍详情
Windows系统编程(原书第三版)
作者:(美)哈特(Hart,J.M.) 著,安娜,吴明军 译;安娜译
出版社:机械工业出版社
出版时间:2006-01-01
ISBN:9787111177012
定价:¥55.00
购买这本书可以去
内容简介
本书重点突出,是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库。
作者简介
哈特(Johnson M.Hart)是Windows、Linux和UNIX程序开发、增强和维护方面的培训和咨询专家,他曾在世界各地开办专业培训课程并发表演讲,同时他还发表了许多技术文章。
目录
译者序
前言.
第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性能结果
参考文献
前言.
第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性能结果
参考文献
猜您喜欢