图书介绍
Windows系统编程 原书第4版PDF|Epub|txt|kindle电子书版本网盘下载
![Windows系统编程 原书第4版](https://www.shukui.net/cover/35/34617867.jpg)
- (美)哈特著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111316688
- 出版时间:2010
- 标注页数:381页
- 文件大小:64MB
- 文件页数:399页
- 主题词:窗口软件,Windows-程序设计
PDF下载
下载说明
Windows系统编程 原书第4版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章Windows初步1
1.1操作系统必备功能1
1.2 Windows的演化2
1.3 Windows版本2
1.3.1过时的Windows先前版本2
1.3.2 Windows NT5和NT63
1.3.3处理器支持3
1.4 Windows的市场角色3
1.5 Windows、标准以及开放系统4
1.6 Windows准则5
1.7 32位和64位源代码可移植性6
1.8标准C库:何时用它来处理文件7
1.9使用本书所需的条件7
1.9.1为什么使用C而不是C7
1.9.2使用示例7
1.10示例:一个简单的顺序文件复制程序8
1.10.1使用C库的文件复制9
1.10.2使用Windows的文件复制11
1.10.3使用Windows便利函数的文件复制12
1.11小结13
1.11.1前瞻14
1.11.2附加阅读14
1.12习题15
第2章 使用Windows文件系统和字符I/O16
2.1 Windows文件系统16
2.2文件命名17
2.3文件的打开、读取、写入以及关闭17
2.3.1文件的创建和打开17
2.3.2关闭文件19
2.3.3读文件20
2.3.4写文件21
2.4 Unicode和通用字符21
2.4.1另一种通用字符串处理函数22
2.4.2通用Main函数23
2.4.3函数定义23
2.5 Unicode策略23
2.6示例:错误处理23
2.7标准设备25
2.8示例:将多个文件复制到标准输出26
2.9示例:简单的文件加密27
2.10文件和目录管理29
2.10.1文件管理29
2.10.2目录管理31
2.11控制台I/O32
2.12示例:打印和提示33
2.13示例:打印当前目录35
2.14小结36
2.14.1前瞻36
2.14.2附加阅读36
2.15习题36
第3章 高级文件、目录处理与注册表38
3.1 64位文件系统38
3.2文件指针38
3.2.1 64位算术39
3.2.2使用重叠结构来指定文件位置40
3.3获得文件尺寸41
3.4示例:随机记录更新41
3.5文件属性和目录处理45
3.5.1路径名46
3.5.2其他用于获得文件和目录属性的方法46
3.5.3临时文件名47
3.6示例:列出文件属性47
3.7示例:设置文件时间50
3.8文件处理策略51
3.9文件锁52
3.9.1释放文件锁54
3.9.2锁逻辑的后果54
3.10注册表55
3.11注册表管理56
3.11.1项管理57
3.11.2值和数据管理58
3.12示例:列出注册表项及其内容59
3.13小结62
3.13.1前瞻62
3.13.2附加阅读62
3.14习题62
第4章 异常处理62
4.1异常及其处理程序64
4.1.1 Try和Except块64
4.1.2过滤表达式及其值66
4.1.3异常代码67
4.1.4小结:异常处理顺序68
4.2浮点异常69
4.3错误和异常70
4.4示例:以异常方式处理错误71
4.5终止处理程序72
4.5.1离开try块72
4.5.2非正常终止73
4.5.3执行并离开终止处理程序73
4.5.4组合finally和except块73
4.5.5全局和局部解开74
4.5.6终止处理程序:进程和线程终止74
4.5.7 SEH和C++异常处理74
4.6示例:使用终止处理程序来改进程序质量74
4.7示例:使用过滤函数77
4.8控制台控制处理程序79
4.9示例:一个控制台控制处理程序80
4.10向量化异常处理82
4.11小结82
4.12习题83
第5章 内存管理、内存映射文件和DLL84
5.1 Windows内存管理架构84
5.2堆86
5.3管理堆内存88
5.3.1 HeapAlloc88
5.3.2 HeapFree89
5.3.3 HeapReAlloc89
5.3.4 HeapSize89
5.3.5更多关于序列化与异常标志的信息90
5.3.6其他堆函数90
5.3.7小结:堆管理91
5.4示例:使用二叉搜索树对文件进行排序91
5.5内存映射文件95
5.5.1文件映射对象96
5.5.2将对象映射到进程地址空间97
5.5.3文件映射的限制99
5.5.4小结:文件映射100
5.6示例:使用映射文件进行顺序文件处理100
5.7示例:对内存映射文件排序102
5.8基指针104
5.9示例:使用基指针104
5.10动态链接库108
5.10.1静态库和动态库108
5.10.2隐式链接109
5.10.3显式链接111
5.11示例:显式链接文件转换函数112
5.12 DLL进入点113
5.13 DLL版本管理114
5.14小结115
5.14.1前瞻115
5.14.2附加阅读115
5.15习题115
第6章 进程管理117
6.1 Windows进程和线程117
6.2进程创建118
6.2.1指定可执行映像和命令行120
6.2.2可继承句柄121
6.3进程标识122
6.4复制句柄123
6.5进程的退出与终止124
6.6等待进程终止125
6.7环境块和字符串125
6.8示例:并行模式搜索126
6.9多处理器环境中的进程129
6.10进程执行时间130
6.11示例:进程执行时间130
6.12生成控制台控制事件131
6.13示例:简单的作业管理132
6.13.1创建一个后台作业132
6.13.2获取作业号135
6.13.3列出背景作业136
6.13.4在作业清单文件中查找作业137
6.13.5作业对象138
6.14示例:使用作业对象139
6.15 小结142
6.16习题142
第7章 线程和调度144
7.1线程概述144
7.2线程基础145
7.3线程管理146
7.3.1 CreateThread146
7.3.2 ExitThread147
7.3.3 GetExitCodeThread147
7.3.4线程标识147
7.3.5更多线程管理函数147
7.3.6挂起以及恢复线程148
7.3.7等待线程终止148
7.4在线程中使用C库148
7.5示例:多线程的模式搜索149
7.6性能影响152
7.7老板/工人和其他线程模型152
7.8示例:合并排序—利用多处理器152
7.9程序并行性简介157
7.10线程本地存储158
7.11进程和线程优先级以及调度159
7.12线程状态160
7.13陷阱和常见错误162
7.14计时等待163
7.15 纤程163
7.16小结165
7.16.1前瞻165
7.16.2附加阅读165
7.17习题165
第8章 线程同步167
8.1线程同步之需167
8.1.1临界代码区域168
8.1.2临界代码区域问题的有瑕疵的解决方案168
8.1.3 volatile存储169
8.1.4内存架构和内存屏障169
8.1.5互锁函数:介绍171
8.1.6局部和全局存储171
8.1.7小结:线程安全的代码172
8.2线程同步对象173
8.3 CRITICAL_SECTION对象173
8.4用于保护共享变量的CRITCAL_SECTION174
8.5示例:一个简单的生产者/消费者系统176
8.6互斥量180
8.6.1被放弃的互斥量181
8.6.2互斥量、CRITICAL_SECTION以及死锁181
8.6.3复习:互斥量与CRITICAL_SECTION对比183
8.6.4堆锁183
8.7信号量183
8.7.1使用信号量184
8.7.2信号量的限制184
8.8事件185
8.9示例:一个生产者/消费者系统187
8.9.1复习:Windows同步对象189
8.9.2消息和对象等待190
8.10更多互斥量和CRITICAL_SECTION的指导原则190
8.11更多互锁函数191
8.12内存管理性能的考虑192
8.13小结192
8.13.1前瞻192
8.13.2附加阅读192
8.14习题192
第9章锁、性能以及NT6增强194
9.1同步性能影响194
9.2用于性能试验的模型程序197
9.3使用CS自旋数来调整多处理器性能198
9.4 NT6轻量级读/写锁199
9.5减少线程竞争的线程池200
9.6 1/O完成端口202
9.7 NT6线程池203
9.7.1 CreateThreadpoolWork203
9.7.2 SubmitThreadpoolWork204
9.7.3 WaitForThreadpoolWork_Callbacks204
9.7.4 CloseThreadpoolWork204
9.7.5回调函数204
9.7.6将回调提交给线程池207
9.7.7线程池环境207
9.7.8进程线程池207
9.7.9其他线程池回调类型208
9.8小结:锁性能208
9.9再论并行性208
9.9.1更好的基础以及扩展中的并行程序技术209
9.9.2并行编程的可选方法209
9.9.3并行性框架209
9.9.4不要忘了挑战的存在210
9.10处理器亲和性210
9.10.1系统、进程与线程亲和性掩码211
9.10.2查找处理器数量212
9.11性能指导原则和陷阱212
9.12小结213
9.12.1前瞻213
9.12.2附加阅读213
9.13习题213
第10章 高级线程同步215
10.1条件变量模型和安全性能215
10.1.1一起使用事件和互斥量215
10.1.2条件变量模型216
10.1.3条件变量模型的使用218
10.2使用SignalObjectAndWait219
10.3示例:阀值屏障对象220
10.4队列对象223
10.5示例:在多阶段管线中使用队列226
10.6 Windows NT6条件变量233
10.7异步过程调用236
10.8异步过程调用的排队236
10.9可报警的等待状态237
10.10安全的线程取消239
10.11为了应用程序的可移植而使用Pthreads239
10.12线程堆栈和线程数239
10.13关于设计、调试和测试的提示240
10.14 Windows API之外241
10.15 小结241
10.15.1前瞻242
10.15.2附加阅读242
10.16习题242
第11章 进程间通信244
11.1匿名管道244
11.2示例:使用匿名管道进行I/O重定向245
11.3命名管道247
11.3.1使用命名管道248
11.3.2创建命名管道248
11.3.3命名管道客户连接249
11.3.4命名管道状态函数250
11.3.5命名管道连接函数250
11.3.6客户和服务器的命名管道连接250
11.4命名管道事务函数251
11.5示例:客户/服务器命令行处理程序253
11.6关于客户/服务器命令行处理程序的注释258
11.7邮槽259
11.7.1使用邮槽260
11.7.2创建和打开邮槽260
11.8管道和邮槽的创建、连接和命名261
11.9示例:客户可定位的服务器262
11.10小结264
11.11习题264
第12章 使用Windows套接字进行网络编程265
12.1 Windows套接字265
12.1.1 Winsock初始化266
12.1.2创建套接字266
12.2套接字服务器函数267
12.2.1绑定套接字267
12.2.2将绑定的套接字置于侦听状态268
12.2.3接受客户连接268
12.2.4断开以及关闭套接字268
12.2.5示例:准备并接受客户连接269
12.3套接字客户函数270
12.3.1连接服务器270
12.3.2示例:客户连接服务器270
12.3.3发送和接收数据270
12.4命名管道和套接字之对比271
12.4.1命名管道与套接字服务器之比较271
12.4.2命名管道与套接字客户之比较271
12.5示例:套接字消息接收函数271
12.6示例:基于套接字的客户272
12.7示例:基于套接字的、带有新特性的服务器274
12.7.1主程序275
12.7.2服务器线程278
12.7.3运行套接字服务器279
12.7.4安全注释280
12.8进程内服务器280
12.9面向行的消息、DLL进入点以及TLS282
12.10示例:线程安全的套接字消息DLL283
12.11示例:另一种线程安全的DLL策略286
12.12数据报289
12.12.1数据报广播289
12.12.2使用数据报进行远程过程调用289
12.13 Berkeley套接字和Windows套接字的比较290
12.14 Windows套接字使用重叠I/O290
12.15 Windows套接字的额外特性290
12.16小结290
12.16.1前瞻290
12.16.2附加阅读291
12.17习题291
第13章Windows服务293
13.1概述:编写Windows服务293
13.2 main()函数294
13.3 ServiceMain()函数294
13.3.1注册服务控制处理程序295
13.3.2设置服务状态295
13.3.3 SERVICE_ STATUS结构296
13.3.4服务特定的代码297
13.4服务控制处理程序297
13.5事件记录298
13.6示例:服务“包装器”298
13.7管理Windows服务302
13.7.1打开SCM303
13.7.2创建和删除服务303
13.7.3启动服务304
13.7.4控制服务304
13.7.5查询服务状态305
13.7.6小结:服务操作和管理305
13.8示例:服务控制Shell305
13.9与服务共享内核对象309
13.10调试服务时的注意事项309
13.11小结310
13.11.1前瞻310
13.11.2附加阅读310
13.12习题310
第14章 异步输入/输出与完成端口311
14.1 Windows异步I/O概述311
14.2重叠I/O312
14.2.1重叠I/O的后果312
14.2.2重叠结构313
14.2.3重叠I/O状态313
14.2.4取消重叠I/O操作314
14.3示例:在一个文件句柄之上同步314
14.4示例:使用重叠I/O和多缓冲区进行文件转换315
14.5使用完成例程的扩展I/O318
14.5.1 ReadFileEx、 WriteFileEx和完成例程318
14.5.2可报警的等待函数319
14.5.3完成例程的执行和可报警等待的返回320
14.6示例:使用扩展I/O的文件转换321
14.7使用线程的异步I/O324
14.8可等待定时器324
14.9示例:使用可等待定时器325
14.9.1可等待定时器示例的注释327
14.9.2线程池定时器327
14.10 I/O完成端口327
14.10.1管理I/O完成端口328
14.10.2等待I/O完成端口328
14.10.3邮发给I/O完成端口329
14.10.4 1/O完成端口的替代329
14.11示例:使用I/O完成端口的服务器329
14.12小结335
14.13习题335
第15章Windows对象的安全337
15.1安全属性337
15.2安全性概述:安全描述符338
15.2.1访问控制列表338
15.2.2使用Windows对象安全性339
15.2.3对象权限和对象访问339
15.2.4安全描述符初始化339
15.3安全描述符控制标志339
15.4安全标识符340
15.5管理ACL341
15.6示例:NTFS文件的UNIX风格的权限342
15.7示例:初始化安全属性345
15.8安全描述符的读与更改347
15.9示例:读取文件权限349
15.10示例:更改文件权限350
15.11给内核和通信对象施加安全350
15.11.1给命名管道施加安全350
15.11.2内核与私有对象的安全性351
15.11.3 ACE掩码值351
15.12示例:给进程及其线程施加安全352
15.13其他安全特性的概述352
15.13.1移除ACE352
15.13.2绝对的和自相关的安全描述符352
15.13.3系统ACL352
15.13.4访问令牌信息353
15.13.5 SID管理353
15.14小结353
15.14.1前瞻353
15.14.2附加阅读353
15.15习题353
附录A使用示例程序355
附录B源代码可移植性:Windows、UNIX和Linux357
附录C性能结果370
参考文献379