Linux高级编程PDF电子书下载
- 电子书积分:24 积分如何计算积分?
- 作 者:(英)Neil Matthew等著;叶小虎,龙浩等译
- 出 版 社:北京:机械工业出版社
- 出版年份:2002
- ISBN:7111094034
- 页数:933 页
作者简介 1
前言 1
第1章 应用程序设计 1
1.1 概述 1
1.2 需求捕获 2
1.3 开发模型 3
1.3.1 “快速跟踪”开发 4
1.3.2 早测试、经常测试 5
1.4 DVD存储店 5
1.4.1 初始化需求 6
1.4.2 分析用户需求 6
1.5 需求声明 10
1.6 应用程序结构 13
1.6.1 详细的设计 14
1.6.3 成员函数 15
1.6.2 数据访问函数 15
1.6.4 片名函数 17
1.6.5 盘函数 18
1.6.6 租赁函数 18
1.6.7 基准执行过程 19
1.7 参考资料 20
1.8 小结 20
2.1 Linux工具 21
第2章 CVS 21
2.2 术语 22
2.3 资料库 22
2.4 单用户CVS项目 23
2.4.1 CVS命令格式 23
2.4.2 环境变量 24
2.4.3引入一个新项目 24
2.4.4 开始项目工作 26
2.4.5 检查资料库中的修改 26
2.4.7 释放项目 28
2.4.6 将修改更新到资料库中 28
2.4.8 检查修改 29
2.4.9 从项目中添加和删除文件 30
2.4.10 关键词替代 30
2.5 修订、标签和分支 31
2.5.1 修订版本 31
2.5.2 标签 31
2.5.3 分支 33
2.6 多用户CVS 39
2.6.1 协同工作 39
2.6.2 使用Watch命令 41
2.7 使用CVS的更多功能 41
2.7.1 二进制文件 41
2.7.2 修正错误的注解 41
2.8 通过网络访问CVS 41
2.9 GUI CVS客户端 43
2.11 小结 45
2.10 参考资料 45
第3章 数据库 47
3.1 选择数据库 47
3.1.1 mSQL 47
3.1.2 MySQL 48
3.1.3 PostgreSQL 48
3.1.4 寻找适合自己的数据库 48
3.2 PostgreSQL 49
3.3 数据库基础 53
3.1.1 第一范式 54
3.3.2 第二范式 54
3.3.3 第三范式 55
3.3.4 降低规范化 55
3.3.5 一个简单的数据库 55
3.4 使用psql 59
3.4.1 psql的命令 60
3.4.2 数据定义命令 61
3.4.3 数据操作命令 65
3.4.4 事务处理 71
3.5 数据库设计技巧 72
3.6 参考资料 73
3.7 小结 74
第4章 与PostgreSQL接口 75
4.1 从代码中访问PostgreSQL 75
4.1.1 Libpq 75
4.1.2 ECPG 92
4.1.3 选择方法 101
4.2 应用 102
4.3 小结 108
第5章 MySQL 109
5.1 安装和试用 109
5.1.1 预编译软件包 109
5.1.2 用源代码安装 110
5.1.3 安装后的配置 111
5.2.1 命令 112
5.2 MySQL 管理 112
5.2.2 创建用户并提供权限 115
5.2.3 口令 116
5.2.4 创建数据库 117
5.3 在PostgreSQL和MySQL中的SQL支持 118
5.4 用C语言访问MySQL数据 119
5.4.1 连接例行程序 120
5.4.2 处理错误 123
5.4.3 执行SQL语句 124
5.4.4 其他的函数 135
5.5 参考资料 135
5.6 小结 135
第6章 处理故障 137
6.1 错误类别 137
6.2 报告错误 137
6.3 检测软件错误 140
6.4 软件错误的类型 140
6.5 调试语句 141
6.6 调试位置 146
6.7 准备调试 150
6.7.1 使用调试程序 151
6.7.2 GDB命令示例 152
6.7.3 其他GDB功能 155
6.8 参考资料 155
6.9 小结 156
7.1 目录服务的概念 157
第7章 LDAP目录服务 157
7.2 目录服务器结构 158
7.2.1 局部的命名 159
7.2.2 dn命名 159
7.2.3 对象组件 160
7.2.4 LDAP目录树 162
7.2.5 LDIF文件 163
7.3 安装并配置LDAP服务器 164
7.3.2 配置OpenLDAP 165
7.3.1 安装OpenLDAP的步骤 165
7.4 运行服务器 167
7.5 用C访问LDAP 169
7.5.1 初始化LDAP库 169
7.5.2 绑定LDAP服务器 169
7.5.3 LDAP错误处理 170
7.5.4 第一个LDAP客户端程序 171
7.5.5 查询 172
7.6 修改数据 180
7.6.1 添加新条目 180
7.6.2 修改条目 183
7.6.3 删除条目 185
7.7 应用程序 186
7.8 参考资料 187
7.9 小结 187
第8章 利用GNOME/GTK+进行GUI编程 188
8.1 GTK+/GNOME库 189
8.2.1 类型 190
8.2 glib 190
8.2.2 宏 191
8.2.3 串函数 193
8.2.4 内存分配 194
8.2.5 列表 195
8.3 GTK+ 196
8.3.1 窗口小部件 197
8.3.2 gtk_init和gtk_main 202
8.3.3 GTK+应用程序示例 202
8.4 GNOME基础 203
8.4.1 菜单和工具栏 204
8.4.2 对话框 207
8.4.3 GNOME应用程序示例 213
8.5 GNOME源树 215
8.5.1 配置保存 219
8.5.2 对话管理 220
8.5.3 利用popt分析命令行 223
8.6 GNOME/GTK+参考资料 226
8.7 小结 226
第9章 使用Glade和GTK+/GNOME构建GUI 228
9.1 Glade概述 228
9.2 Glade指南 229
9.2.1 主窗口 230
9.2.2 选项板 232
9.2.3 属性窗口 234
9.2.4 Glade构建的源树 237
9.2.5 lookup_widget 239
9.2.6 添加代码 240
9.2.7 libglade 242
9.3 DVD Store GNOME GUI 244
9.3.1 设计 245
9.3.2 编译和运行dvdstore 245
9.3.3 结构 251
9.3.4 代码 252
9.4 小结 277
第10章 Flex和Bison 278
10.1 输入结构 278
10.1.1 扫描器和句法分析器 280
10.1.2 生成器的工作原理 280
10.2 扫描器 281
10.2.1 一个简单的扫描器 281
10.2.2 扫描器说明 282
10.2.3 最长匹配原则 286
10.2.4 规则表达式 287
10.2.5 操作 288
10.2.6 改变扫描器的输入输出 289
10.2.7 返回标识 290
10.2.8 上下文相关扫描器 291
10.2.9 flex的选项 291
10.3 句法分析器 292
10.3.1 生成句法分析器 293
10.3.2 创建语法测试程序 297
10.3.3 标识类型 300
10.3.4 规则操作 301
10.3.5 bison选项 307
10.3.6 语法中的冲突 308
10.3.7 数学表达式 309
10.4 参考资料 310
10.5 小结 310
11.1.1 应用程序结构 311
11.1 测试需求类型 311
第11章 测试工具 311
11.1.2 步骤 312
11.1.3 普通测试 312
11.1.4 回归测试 313
11.1.5 一个测试程序 315
11.1.6 测试dvdstore程序 319
11.1.7 脚本测试 320
11.1.8 expect 320
11.1.9 内存问题 322
11.1.10 安装mpatrol 328
11.1.11 使用mpatrol 328
11.1.12 测试覆盖 333
11.1.13 性能测试 340
11.2 小结 342
第12章 安全程序设计 343
12.1 安全程序设计的概念 343
12.2 为什么安全程序设计是困难的 343
12.2.1 文件系统安全 345
12.2.2 验证用户 348
12.2.3 安全地使用密码术 359
12.2.4 安全网络编程 363
12.2.5 书写协议 363
12.2.6 标准网络密码工具 366
12.2.7 环境问题 368
12.3 参考资料 373
12.2.9 PHP 373
12.2.8 Python 373
12.4 小结 374
第13章 使用KDE/Qt进行GUI编程 375
13.1 简介 375
13.1.1 关于Qt 375
13.1.2 关于KDE 376
13.1.3 安装Qt 376
13.1.5 库 377
13.1.4 安装KDE 377
13.2 使用Qt编写应用程序 378
13.2.1 开始“Hello World” 378
13.2.2 使用tmake来简化Makefile文件的管理 380
13.2.3 信号和插槽 380
13.2.4 再访“Hello World” 383
13.2.5 从基类中派生 383
13.2.6 窗口小部件 385
13.2.7 布局 387
13.3 使用KDE编写应用程序 390
13.4 参考资料 397
13.5 小结 397
第14章 用KDE/Qt写DVD商店图形用户界面 399
14.1 应用程序设计 399
14.1.1 应用程序设计 399
14.1.2 主窗口 402
14.1.3 会员对话框 406
14.1.4 租赁对话框 409
14.1.5 租赁报告对话框 411
14.1.6 搜索窗口 412
14.1.7 设置管理器 418
14.2 代码的KDE转换 419
14.3 KConfig和SettingManager函数 425
14.4 参考资料 425
14.5 小结 425
15.1 简介 426
第15章 Python 426
15.1.1 特征 427
15.1.2 Python:工作的好帮手 430
15.1.3 并非适合于任何工作 430
15.2 安装Python 430
15.3 运行Python 432
15.3.1 交互式解释器 432
15.3.2 命令参数 432
15.4 详解 433
15.4.1 解释器和字节编译 433
15.3.3 脚本参数 433
15.3.4 可执行的“Standalone” 433
15.4.2 注解语法 434
15.4.3 区分大小写 434
15.4.4 内建数据类型和运算符 434
15.4.5 变量 443
15.4.6 块结构的语法 443
15.4.7 语句的语法 444
15.4.8 函数 449
15.4.9 内部函数 451
15.4.10 名称空间 451
15.4.11 模块和包 452
15.4.12 标准产品中的一些模块 452
15.4.13 类和对象 452
15.4.14 扩展的Python 454
15.5 一个例程:精打细算 455
15.6 在线参考资料 460
15.7 小结 460
第16章 使用PHP创建Web界面 462
16.1 PHP和服务器端的脚本 462
16.1.1 服务器端的脚本 462
16.1.2 PHP的功能 464
16.2 安装和配置PHP 464
16.3 PHP语法简介 469
16.3.1 变量、常数和数据类型 469
16.3.2 PHP的运算符 470
16.3.3 语句 471
16.3.4 函数 472
16.3.5 数组 473
16.4 在DVD程序中使用PHP 474
16.5 应用程序 476
16.5.1 登录 476
16.5.2 预订状态 476
16.5.3 查找片名 476
16.5.4 预订片名 476
16.5.5 删除 476
16.5.6 dvdstorefunctions.php 477
16.5.7 dvdstorecommon.php 483
16.5.8 dvdstorelogin.php 485
16.5.9 dvdstoresearch.php 488
16.5.10 dvdstorestatus.php 489
16.5.11 dvdstorecancel.php 490
16.5.12 dvdstorereserve.php 491
16.6 参考资料 492
16.7 小结 492
第17章 使用C/C++嵌入和扩展Python 493
17.1 在C/C++中开发扩展模块 494
17.1.1 所需软件工具 494
17.1.2 使用SWIG扩展Python 495
17.2 使用C API扩展Python 519
17.2.1 Python对象类型 519
17.2.2 引用记数和所有权 520
17.2.3 开发C扩展模块的概念 521
17.2.4 简单函数 522
17.2.5 一个略微复杂的函数 524
17.2.6 全局解释器锁定 525
17.2.7 创建新的Python对象类型 525
17.2.8 使用C API封装C++对象 532
17.3.1 嵌入开发环境 535
17.3 在C/C++中嵌入Python 535
17.3.2 使用高级函数嵌入Python 536
17.3.3 将主程序静态链接到扩展模块上 537
17.3.4 使用低级调用嵌入Python 539
17.4 一般性建议 549
17.5 参考资料 550
17.6 小结 550
18.2 一个简单的网络DVD商店数据库 551
18.1 概述 551
第18章 远程过程调用 551
18.2.1 BSD套接字 552
18.2.2 使用BSD套接字接口的编程主题 557
18.2.3 ONC RPC结构和概念 557
18.3 在DVD商店应用程序中使用RPC的原因 558
18.4 RPC工具和实用程序 559
18.5 将RPC应用到DVD商店 562
18.5.1 没有参数或返回值的函数 562
18.5.2 带简单参数和简单返回类型的函数 570
18.5.3 更复杂的示例 572
18.5.4 返回数组 575
18.5.5 客户端超时 578
18.6 认证 579
18.6.1 AUTH_NONE 579
18.6.2 AUTH_UNIX 579
18.6.3 客户端认证支持 580
18.6.4 服务器端认证支持 580
18.7 用/etc/inetd.conf来使用RPC服务器 582
18.8 简化网络编程的其他方法 583
18.9 参考资料 583
18.10 小结 584
第19章 多媒体与Linux 585
19.1 现状 585
19.2 程序集成 586
19.3 声音 586
19.3.1 设备 587
19.3.2 处理标准的音频格式 588
19.3.3 自己编程 590
19.4 动画 605
19.4.1 软件播放器 605
19.4.2 硬件播放器 606
19.4.3 混合 607
19.5 政治和法律问题 608
19.6 参考资料 608
19.7 小结 609
20.1 接口定义语言 610
第20章 CORBA 610
20.2 对象请求代理 611
20.3 交互操作式对象引用 611
20.4 对象适配器 611
20.5 服务器 612
20.6 命名和交易服务 612
20.7 评价CORBA 612
20.8 CORBA与RPC 613
20.9 CORBA和套接字 614
20.10 与CORBA类似的系统 615
20.10.1 DCOM或COM+ 615
20.10.2 Java远程方法调用 615
20.10.3 企业JavaBeans 616
20.10.4 IBM MQSeries 616
20.10.5 SOAP 616
20.11 IDL:定义接口 617
20.11.1 模块 617
20.11.2 接口 618
20.11.3 基本数据类型 618
20.11.4 模板类型 619
20.11.5 DVD应用程序示例 623
20.12 语言映射 626
20.12.1 语言映射组件 627
20.12.2 C映射 628
20.13.2 在IDL中使用ORBit 633
20.13.1 简单消息传递 633
20.13 介绍性示例:简单消息系统 633
20.13.3 消息客户 634
20.13.4 消息服务器 636
20.13.5 编辑ORBit应用程序 636
20.13.6 运行消息应用程序 637
20.14 参考资料 638
20.15 小结 638
21.1.1 DVD客户 640
21.1 为DVD商店应用程序使用CORBA 640
第21章 用ORBit实现CORBA 640
21.1.2 DVD服务器 641
21.1.3 日志服务器 641
21.1.4 验证服务器 641
21.1.5 客户代码 642
21.1.6 记录服务器 642
21.1.7 DVD服务器 643
21.1.8 集中在一起 656
21.2 使用libgnorba 657
21.4 GOAD--GNOME对象活动目录 658
21.3 为多主机使用配置ORBit 658
21.5 CORBA在GNOME上的使用 659
21.6 高级CORBA功能 660
21.6.1 动态接口调用 660
21.6.2 CORBAServices 660
21.6.3 CORBAFacilities 663
21.6.4 设计和运行可扩展的CORBA服务 664
21.7 参考资料 667
21.8 小结 667
第22章 无盘系统 668
22.1 历史回顾 668
22.2 没有磁盘 669
22.3 为什么要建立无盘系统 670
22.4 它的工作原理 671
22.4.2 无盘系统的网络标识 672
22.4.1 启动无盘系统 672
22.4.3 运行操作系统 673
22.5 服务器配置 674
22.6 创建引导镜像 676
22.7 无盘Linux内核 677
22.8 引导文件系统 680
22.9 问题 682
22.10 客户应用程序 683
22.11 小结 684
第23章 XML和libxml 685
23.1 XML文档结构 686
23.1.1 XML语法 686
23.1.2 结构完善的XML 687
23.1.3 有效的XML 690
23.2.2 SAX 694
23.2.3 LibXMLa.k.a.gnome-xml 694
23.2.1 DOM 694
23.2 XML句法分析 694
23.2.4 完整的解析器 706
23.3 参考资料 713
23.4 小结 713
第24章 Beowulf群 714
24.1 硬件设置 714
24.3 Beowulf群件编程 715
24.2 软件配置 715
24.4 使用MPI编程 716
24.4.1 MPI程序的基本功能 717
24.4.2 编译并执行一个简单的MPI程序 718
24.4.3 分布式的MP3编码器 719
24.4.4 Beowulf群的通信性能 721
24.4.5 MPI的高级特性 725
24.4.6 一些MPI编程的例子 732
24.5.2 获取并安装PVM 742
24.5.1 与MPI的比较 742
24.5 用PVM编程 742
24.5.3 PVM库例程 743
24.5.4 一个PVM例子程序 744
24.6 参考资料 747
24.7 小结 747
第25章 文件编制 748
25.1 读者对象 748
25.2.1 在本地机上运行文件GUI 749
25.2 终端用户文件编制:GUI 749
25.2.2 文件Web GUI 751
25.3 高级用户/系统管理员文件编制 752
25.3.1 命令行选择:提供--help 752
25.3.2 手册页 753
25.3.3 保持事件在管理范围内 754
25.3.4 字体 757
25.3.5 段落 757
25.3.6 表 758
25.3.7 为API编写手册页 759
25.3.8 下一代manpage--info文件 761
25.4 从单个程序到分布系统的结构 762
25.5 文件编制工具 763
25.5.1 仍然很强大的旧的TeX和LaTeX 763
25.5.2 一个新的种类:HTML、XML和DocBook 766
25.5.3 HOWTO和FAQ文件 769
25.6 开发者文件编制 769
25.6.1 Perl的POD方法 770
25.6.2 文献程序编程 771
25.6.4 文件交换 775
25.6.3 次要的文献程序编程 775
25.6.5 PDF文件 776
25.7 小结 776
第26章 设备驱动程序 777
26.1 执行环境 777
26.2 模块和初始化代码 778
26.3 链接段 778
26.4.1 结构体pci_dev 780
26.4 PCI设备和驱动程序 780
26.4.2 查找PCI设备 781
26.4.3 PCI驱动程序 782
26.4.4 PCI访问函数 783
26.4.5 资源分配 783
26.4.6 中断处理器 784
26.4.7 访问用户空间存储器 787
26.4.8 kiobuf体系结构 788
26.4.9 锁定原语 791
26.4.10 调度和等待队列 793
26.4.11 模块使用数 797
26.4.12 构建 799
26.5 怎样处理新驱动程序 801
26.6 小结 803
第27章 应用程序的发布 804
27.1 RPM软件包 805
27.1.1 RPM用户 805
27.1.2 我们已经安装了什么 806
27.1.3 RPM数据库 807
27.1.4 对一个RPM包的分析 815
27.1.5 源代码包 816
27.2 Configure、autoconf和automake文件 817
27.3 建立一个RPM包 821
27.4 补丁 825
27.4.1 制作补丁 825
27.4.2 补丁的应用 826
27.5 GNATS 827
27.6 小结 828
第28章 国际化 829
28.1 I18N术语 830
28.2 Unicode是解决方案吗 831
28.3 字符编码问题 835
28.3.1 ISO 2022:编码字符集的扩展技术 835
28.3.2 使用Unicode编程 837
28.4 I18N模型和系统环境 842
28.4.1 POSIX本地模型 843
28.4.2 X/Open兼容向导 845
28.5 输出格式和输入处理 848
28.6 I18N编程的实际考虑 852
28.6.1 I18N和内部文本处理 853
28.6.2 用locale变量编程 854
28.6.3 I18N和Xlib编程 864
28.6.4 I18N和Linux GUI 872
28.7 在实际软件开发工程中的I18N 873
28.6.5 I18N和Linux软件开发的现状 873
28.7.1 面向对象编程和I18N 874
28.7.2 应用生成器和I18N 875
28.7.3 Linux I18N的下一步 877
附录A GTK+和GNOME对象参考 879
附录B DVD商店RPC协议定义 905
附录C 开放源代码许可 911
附录D 支持、勘误及P2P.Wrox.Com 928
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《编程超有趣 奇妙Python轻松学 第1辑》HelloCode人工智能国际研究组 2018
- 《我的第一套编程启蒙绘本 看事件 开始了》编程猫教研团队编绘 2019
- 《STEM教育丛书 麦昆机器人和Micro:bit图形化编程》张弛责任编辑;(中国)陈宝杰,沙靓雯 2019
- 《ROS机器人编程与SLAM算法解析指南》陶满礼 2020
- 《我的第一套编程启蒙绘本 123 序列来啦》编程猫教研团队编绘 2019
- 《高等院校计算机任务驱动教改教材 C语言编程思维 第2版》(中国)陈萌,鲍淑娣 2019
- 《我的第一套编程启蒙绘本 咦 什么在 循环》编程猫教研团队编绘 2019
- 《工业机器人离线编程与仿真》张明文,封家诚,王鑫主编 2019
- 《断陷湖盆比较沉积学与油气储层》赵永胜等著 1996
- 《古代巴比伦》(英)莱昂纳德·W.金著 2019
- 《BBC人体如何工作》(英)爱丽丝.罗伯茨 2019
- 《一个数学家的辩白》(英)哈代(G.H.Hardy)著;李文林,戴宗铎,高嵘译 2019
- 《莎士比亚全集 2》(英)莎士比亚著,朱生豪等译 2002
- 《莎士比亚戏剧精选集》(英)威廉·莎士比亚(William Shakespeare)著 2020
- 《莎士比亚 叙事诗·抒情诗·戏剧》(英)威廉·莎士比亚著 2019
- 《亚历山大继业者战争 上 将领与战役》(英)鲍勃·本尼特,(英)麦克·罗伯茨著;张晓媛译 2019
- 《孩子们的音乐之旅 1 宝宝睡觉 幼儿版》包菊英主编 2016
- 《液固旋流分离新技术》中国化工学会组织编写;汪华林等著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019