图书介绍

Windows系统编程 原书第4版PDF|Epub|txt|kindle电子书版本网盘下载

Windows系统编程 原书第4版
  • (美)哈特著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111316688
  • 出版时间:2010
  • 标注页数:381页
  • 文件大小:64MB
  • 文件页数:399页
  • 主题词:窗口软件,Windows-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐