书籍详情
Linux高级编程
作者:(英)Neil Matthew等著;叶小虎,龙浩等译
出版社:机械工业出版社
出版时间:2002-01-01
ISBN:9787111094036
定价:¥89.00
购买这本书可以去
内容简介
随着Linux平台的广泛使用,与之相关专业的应用开发变得越来越重要。本书以一个DVD出租商店为例,贯穿全文讲解了Linux 的数据存储、GUI实现、PHP模型、使用Python、使用RPC和CORBA、文件编制、国际化及无盘的Linux和Beowulf群等技术,是Linux编程不可多得的参考书。本书适合Linux程序员及操作系统开发者使用。
作者简介
Neil MatthewNeil从1974开始就从事各种计算机编程工作,但他并不老。出于对编程语言和使用编程语言来解决不同问题的方法的热爱,他已经编写了他的经历同竞争者、翻译者共享,包括Basic、BCPL、FP、Lisp、Prolog以及BBC微处理机核心中的6502微处理器便件。他毕业于英格兰University of Nottingham,获得数学学士学位,但他被计算机深深吸引。从1978年开始,他就开始使用UNIX,包括大多数学术的商用的产品,有些现在已经不用了。特别是PDP11/34和71/70上的UNIX版本6和版本7、PDP 11/23Inte1286和386上的Xenix,DECVAX11/750上的BSD4.2 Micro VAX和Intel1386上的UNIX System V sparc上的Sun SunOs4以及Sparc和Intel上的Sparis。现在他正收集Linux分布到他的6台PC家庭网络中。Neil认为Linux是一个很伟大的开发环境,因为它提供了传统UNIX系统所有灵活性和功能。为UNIX编写的程序只要稍做改动就可移植到Linux上。20世纪80年代作为Camtec Electronics的软件和原理工程师,Neil用C和C++为实时嵌入式系统编程。Linux在他所从事的工作中越来越重要。等等
目录
作者简介
前言
第1章 应用程序设计
1.1 概述
1.2 需求捕获
1.3 开发模型
1.3.1 “快速跟踪”开发
1.3.2 早测试、经常测试
1.4 DVD存储店
1.4.1 初始化需求
1.4.2 分析用户需求
1.5 需求声明
1.6 应用程序结构
1.6.1 详细的设计
1.6.2 数据访问函数
1.6.3 成员函数
1.6.4 片名函数
1.6.5 盘函数
1.6.6 租赁函数
1.6.7 基准执行过程
1.7 参考资料
1.8 小结
第2章 CVS
2.1 Linux工具
2.2 术语
2.3 资料库
2.4 单用户CVS项目
2.4.1 CVS命令格式
2.4.2 环境变量
2.4.3 引入一个新项目
2.4.4 开始项目工作
2.4.5 检查资料库中的修改
2.4.6 将修改更新到资料库中
2.4.7 释放项目
2.4.8 检查修改
2.4.9 从项目中添加和删除文件
2.4.10 关键词替代
2.5 修订、标签和分支
2.5.1 修订版本
2.5.2 标签
2.5.3 分支
2.6 多用户CVS
2.6.1 协同工作
2.6.2 使用Watch命令
2.7 使用CVS的更多功能
2.7.1 二进制文件
2.7.2 修正错误的注解
2.8 通过网络访问CVS
2.9 GUI CVS客户端
2.10 参考资料
2.11 小结
第3章 数据库
3.1 选择数据库
3.1.1 mSQL
3.1.2 MySQL
3.1.3 PostgreSQL
3.1.4 寻找适合自己的数据库
3.2 PostgreSQL
3.3 数据库基础
3.3.1 第一范式
3.3.2 第二范式
3.3.3 第三范式
3.3.4 降低规范化
3.3.5 一个简单的数据库
3.4 使用psql
3.4.1 psql的命令
3.4.2 数据定义命令
3.4.3 数据操作命令
3.4.4 事务处理
3.5 数据库设计技巧
3.6 参考资料
3.7 小结
第4章 与PostgreSQL接口
4.1 从代码中访问PostgreSQL
4.1.1 Libpq
4.1.2 ECPG
4.1.3 选择方法
4.2 应用
4.3 小结
第5章 MySQL
5.1 安装和试用
5.1.1 预编译软件包
5.1.2 用源代码安装
5.1.3 安装后的配置
5.2 MySQL 管理
5.2.1 命令
5.2.2 创建用户并提供权限
5.2.3 口令
5.2.4 创建数据库
5.3 在PostgreSQL和MySQL中的SQL支持
5.4 用C语言访问MySQL数据
5.4.1 连接例行程序
5.4.2 处理错误
5.4.3 执行SQL语句
5.4.4 其他的函数
5.5 参考资料
5.6 小结
第6章 处理故障
6.1 错误类别
6.2 报告错误
6.3 检测软件错误
6.4 软件错误的类型
6.5 调试语句
6.6 调试位置
6.7 准备调试
6.7.1 使用调试程序
6.7.2 GDB命令示例
6.7.3 其他GDB功能
6.8 参考资料
6.9 小结
第7章 LDAP目录服务
7.1 目录服务的概念
7.2 目录服务器结构
7.2.1 局部的命名
7.2.2 dn命名
7.2.3 对象组件
7.2.4 LDAP目录树
7.2.5 LDIF文件
7.3 安装并配置LDAP服务器
7.3.1 安装OpenLDAP的步骤
7.3.2 配置OpenLDAP
7.4 运行服务器
7.5 用C访问LDAP
7. 5.1 初始化LDAP库
7.5.2 绑定LDAP服务器
7.5.3 LDAP错误处理
7.5.4 第一个LDAP客户端程序
7.5.5 查询
7.6 修改数据
7.6.1 添加新条目
7.6.2 修改条目
7.6.3 删除条目
7.7 应用程序
7.8 参考资料
7.9 小结
第8章 利用GNOME/GTK+进行GUI编程
8.1 GTK+/GNOME库
8.2 glib
8.2.1 类型
8.2.2 宏
8.2.3 串函数
8.2.4 内存分配
8.2.5 列表
8.3 GTK+
8.3.1 窗口小部件
8.3.2 gtk_init和gtk_main
8.3.3 GTK+应用程序示例
8.4 GNOME基础
8.4.1 菜单和工具栏
8.4.2 对话框
8.4.3 GNOME应用程序示例
8.5 GNOME源树
8.5.1 配置保存
8.5.2 对话管理
8.5.3 利用popt分析命令行
8.6 GNOME/GTK+参考资料
8.7 小结
第9章 使用Glade和GTK+/GNOME构建GUI
9.1 Glade概述
9.2 Glade指南
9.2.1 主窗口
9.2.2 选项板
9.2.3 属性窗口
9.2.4 Glade构建的源树
9.2.5 lookup_widget
9.2.6 添加代码
9.2.7 libglade
9.3 DVD Store GNOME GUI
9.3.1 设计
9.3.2 编译和运行dvdstore
9.3.3 结构
9.3.4 代码
9.4 小结
第10章 Flex和Bison
10.1 输入结构
10.1.1 扫描器和句法分析器
10.1.2 生成器的工作原理
10.2 扫描器
10.2.1 一个简单的扫描器
10.2.2 扫描器说明
10.2.3 最长匹配原则
10.2.4 规则表达式
10.2.5 操作
10.2.6 改变扫描器的输入输出
10.2.7 返回标识
10.2.8 上下文相关扫描器
10.2.9 flex的选项
10.3 句法分析器
10.3.1 生成句法分析器
10.3.2 创建语法测试程序
10.3.3 标识类型
10.3.4 规则操作
10.3.5 bison选项
10.3.6 语法中的冲突
10.3.7 数学表达式
10.4 参考资料
10.5 小结
第11章 测试工具
11.1 测试需求类型
11.1.1 应用程序结构
11.1.2 步骤
11.1.3 普通测试
11.1.4 回归测试
11.1.5 一个测试程序
11.1.6 测试dvdstore程序
11.1.7 脚本测试
11.1.8 expect
11.1.9 内存问题
11.1.10 安装mpatrol
11.1.11 使用mpatrol
11.1.12 测试覆盖
11.1.13 性能测试
11.2 小结
第12章 安全程序设计
12.1 安全程序设计的概念
12.2 为什么安全程序设计是困难的
12.2.1 文件系统安全
12.2.2 验证用户
12.2.3 安全地使用密码术
12.2.4 安全网络编程
12.2.5 书写协议
12.2.6 标准网络密码工具
12.2.7 环境问题
12.2.8 Python
12.2.9 PHP
12.3 参考资料
12.4 小结
第13章 使用KDE/Qt进行GUI编程
13.1 简介
13.1.1 关于Qt
13.1.2 关于KDE
13.1.3 安装Qt
13.1.4 安装KDE
13.1.5 库
13.2 使用Qt编写应用程序
13.2.1 开始“Hello World”
13.2.2 使用tmake来简化Makefile文件的管理
13.2.3 信号和插槽
13.2.4 再访“Hello World”
13.2.5 从基类中派生
13.2.6 窗口小部件
13.2.7 布局
13.3 使用KDE编写应用程序
13.4 参考资料
13.5 小结
第14章 用KDE/Qt写DVD商店图形用户界面
14.1 应用程序设计
14.1.1 应用程序设计
14.1.2 主窗口
14.1.3 会员对话框
14.1.4 租赁对话框
14.1.5 租赁报告对话框
14.1.6 搜索窗口
14.1.7 设置管理器
14.2 代码的KDE转换
14.3 KConfig和SettingManager函数
14.4 参考资料
14.5 小结
第15章 Python
15.1 简介
15.1.1 特征
15.1.2 Python:工作的好帮手
15.1.3 并非适合于任何工作
15.2 安装Python
15.3 运行Python
15.3.1 交互式解释器
15.3.2 命令参数
15.3.3 脚本参数
15.3.4 可执行的“Standalone”
15.4 详解
15.4.1 解释器和字节编译
15.4.2 注解语法
15.4.3 区分大小写
15.4.4 内建数据类型和运算符
15.4.5 变量
15.4.6 块结构的语法
15.4.7 语句的语法
15.4.8 函数
15.4.9 内部函数
15.4.10 名称空间
15.4.11 模块和包
15.4.12 标准产品中的一些模块
15.4.13 类和对象
15.4.14 扩展的Python
15.5 一个例程:精打细算
15.6 在线参考资料
15.7 小结
第16章 使用PHP创建Web界面
16.1 PHP和服务器端的脚本
16.1.1 服务器端的脚本
16.1.2 PHP的功能
16.2 安装和配置PHP
16.3 PHP语法简介
16.3.1 变量、常数和数据类型
16.3.2 PHP的运算符
16.3.3 语句
16.3.4 函数
16.3.5 数组
16.4 在DVD程序中使用PHP
16.5 应用程序
16.5.1 登录
16.5.2 预订状态
16.5.3 查找片名
16.5.4 预订片名
16.5.5 删除
16.5.6 dvdstorefunctions.php
16.5.7 dvdstorecommon.php
16.5.8 dvdstorelogin.php
16.5.9 dvdstoresearch.php
16.5.10 dvdstorestatus.php
16.5.11 dvdstorecancel.php
16.5.12 dvdstorereserve.php
16.6 参考资料
16.7 小结
第17章 使用C/C++嵌入和扩展Python
17.1 在C/C++中开发扩展模块
17.1.1 所需软件工具
17.1.2 使用SWIG扩展Python
17.2 使用C API扩展Python
17.2.1 Python对象类型
17.2.2 引用记数和所有权
17.2.3 开发C扩展模块的概念
17.2.4 简单函数
17.2.5 一个略微复杂的函数
17.2.6 全局解释器锁定
17.2.7 创建新的Python对象类型
17.2.8 使用C API封装C++对象
17.3 在C/C++中嵌入Python
17.3.1 嵌入开发环境
17.3.2 使用高级函数嵌入Python
17.3.3 将主程序静态链接到扩展模块上
17.3.4 使用低级调用嵌入Python
17.4 一般性建议
17.5 参考资料
17.6 小结
第18章 远程过程调用
18.1 概述
18.2 一个简单的网络DVD商店数据库
18.2.1 BSD 套接字
18.2.2 使用BSD套接字接口的编程主题
18.2.3 ONC RPC 结构和概念
18.3 在DVD商店应用程序中使用RPC的原因
18.4 RPC工具和实用程序
18.5 将RPC应用到DVD商店
18.5.1 没有参数或返回值的函数
18.5.2 带简单参数和简单返回类型的函数
18.5.3 更复杂的示例
18.5.4 返回数组
18.5.5 客户端超时
18.6 认证
18.6.1 AUTH_NONE
18.6.2 AUTH_UNIX
18.6.3 客户端认证支持
18.6.4 服务器端认证支持
18.7 用/etc/inetd.conf来使用RPC服务器
18.8 简化网络编程的其他方法
18.9 参考资料
18.10 小结
第19章 多媒体与Linux
19.1 现状
19.2 程序集成
19.3 声音
19.3.1 设备
19.3.2 处理标准的音频格式
19.3.3 自己编程
19.4 动画
19.4.1 软件播放器
19.4.2 硬件播放器
19.4.3 混合
19.5 政治和法律问题
19.6 参考资料
19.7 小结
第20章 CORBA
20.1 接口定义语言
20.2 对象请求代理
20.3 交互操作式对象引用
20.4 对象适配器
20.5 服务器
20.6 命名和交易服务
20.7 评价CORBA
20.8 CORBA与RPC
20.9 CORBA和套接字
20.10 与CORBA类似的系统
20.10.1 DCOM或COM+
20.10.2 Java远程方法调用
20.10.3 企业JavaBeans
20.10.4 IBM MQSeries
20.10.5 SOAP
20.11 IDL:定义接口
20.11.1 模块
20.11.2 接口
20.11.3 基本数据类型
20.11.4 模板类型
20.11.5 DVD应用程序示例
20.12 语言映射
20.12.1 语言映射组件
20.12.2 C映射
20.13 介绍性示例:简单消息系统
20.13.1 简单消息传递
20.13.2 在IDL中使用ORBit
20.13.3 消息客户
20.13.4 消息服务器
20.13.5 编辑ORBit应用程序
20.13.6 运行消息应用程序
20.14 参考资料
20.15 小结
第21章 用ORBit实现CORBA
21.1 为DVD商店应用程序使用CORBA
21.1.1 DVD客户
21.1.2 DVD服务器
21.1.3 日志服务器
21.1.4 验证服务器
21.1.5 客户代码
21.1.6 记录服务器
21.1.7 DVD服务器
21.1.8 集中在一起
21.2 使用libgnorba
21.3 为多主机使用配置ORBit
21.4 GOAD—GNOME对象活动目录
21.5 CORBA在GNOME上的使用
21.6 高级CORBA功能
21.6.1 动态接口调用
21.6.2 CORBAServices
21.6.3 CORBAFacilities
21.6.4 设计和运行可扩展的CORBA服务
21.7 参考资料
21.8 小结
第22章 无盘系统
22.1 历史回顾
22.2 没有磁盘
22.3 为什么要建立无盘系统
22.4 它的工作原理
22.4.1 启动无盘系统
22.4.2 无盘系统的网络标识
22.4.3 运行操作系统
22.5 服务器配置
22.6 创建引导镜像
22.7 无盘Linux内核
22.8 引导文件系统
22.9 问题
22.10 客户应用程序
22.11 小结
第23章 XML和libxml
23.1 XML文档结构
23.1.1 XML语法
23.1.2 结构完善的XML
23.1.3 有效的XML
23.2 XML句法分析
23.2.1 DOM
23.2.2 SAX
23.2.3 LibXML a.k.a. gnome-xml
23.2.4 完整的解析器
23.3 参考资料
23.4 小结
第24章 Beowulf群
24.1 硬件设置
24.2 软件配置
24.3 Beowulf群件编程
24.4 使用MPI编程
24.4.1 MPI程序的基本功能
24.4.2 编译并执行一个简单的MPI程序
24.4.3 分布式的MP3编码器
24.4.4 Beowulf群的通信性能
24.4.5 MPI的高级特性
24.4.6 一些MPI编程的例子
24.5 用PVM编程
24.5.1 与MPI的比较
24.5.2 获取并安装PVM
24.5.3 PVM库例程
24.5.4 一个PVM例子程序
24.6 参考资料
24.7 小结
第25章 文件编制
25.1 读者对象
25.2 终端用户文件编制:GUI
25.2.1 在本地机上运行文件GUI
25.2.2 文件Web GUI
25.3 高级用户/系统管理员文件编制
25.3.1 命令行选择:提供--help
25.3.2 手册页
25.3.3 保持事件在管理范围内
25.3.4 字体
25.3.5 段落
25.3.6 表
25.3.7 为API编写手册页
25.3.8 下一代manpage—info文件
25.4 从单个程序到分布系统的结构
25.5 文件编制工具
25.5.1 仍然很强大的旧的TeX和LaTeX
25.5.2 一个新的种类:HTML、XML和DocBook
25.5.3 HOWTO和FAQ文件
25.6 开发者文件编制
25.6.1 Perl的POD方法
25.6.2 文献程序编程
25.6.3 次要的文献程序编程
25.6.4 文件交换
25.6.5 PDF文件
25.7 小结
第26章 设备驱动程序
26.1 执行环境
26.2 模块和初始化代码
26.3 链接段
26.4 PCI设备和驱动程序
26.4.1 结构体pci_dev
26.4.2 查找PCI设备
26.4.3 PCI驱动程序
26.4.4 PCI访问函数
26.4.5 资源分配
26.4.6 中断处理器
26.4.7 访问用户空间存储器
26.4.8 kiobuf体系结构
26.4.9 锁定原语
26.4.10 调度和等待队列
26.4.11 模块使用数
26.4.12 构建
26.5 怎样处理新驱动程序
26.6 小结
第27章 应用程序的发布
27.1 RPM软件包
27.1.1 RPM用户
27.1.2 我们已经安装了什么
27.1.3 RPM数据库
27.1.4 对一个RPM包的分析
27.1.5 源代码包
27.2 Configure、autoconf和automake文件
27.3 建立一个RPM包
27.4 补丁
27.4.1 制作补丁
27.4.2 补丁的应用
27.5 GNATS
27.6 小结
第28章 国际化
28.1 I18N术语
28.2 Unicode是解决方案吗
28.3 字符编码问题
28.3.1 ISO 2022:编码字符集的扩展技术
28.3.2 使用Unicode编程
28.4 I18N 模型和系统环境
28.4.1 POSIX本地模型
28.4.2 X/Open 兼容向导
28.5 输出格式和输入处理
28.6 I18N编程的实际考虑
28.6.1 I18N和内部文本处理
28.6.2 用locale变量编程
28.6.3 I18N和Xlib编程
28.6.4 I18N和Linux GUI
28.6.5 I18N和Linux软件开发的现状
28.7 在实际软件开发工程中的I18N
28.7.1 面向对象编程和I18N
28.7.2 应用生成器和I18N
28.7.3 Linux I18N的下一步
附录A GTK+和GNOME 对象参考
附录B DVD商店RPC协议定义
附录C 开放源代码许可
附录D 支持、勘误及P2P.Wrox.Com
前言
第1章 应用程序设计
1.1 概述
1.2 需求捕获
1.3 开发模型
1.3.1 “快速跟踪”开发
1.3.2 早测试、经常测试
1.4 DVD存储店
1.4.1 初始化需求
1.4.2 分析用户需求
1.5 需求声明
1.6 应用程序结构
1.6.1 详细的设计
1.6.2 数据访问函数
1.6.3 成员函数
1.6.4 片名函数
1.6.5 盘函数
1.6.6 租赁函数
1.6.7 基准执行过程
1.7 参考资料
1.8 小结
第2章 CVS
2.1 Linux工具
2.2 术语
2.3 资料库
2.4 单用户CVS项目
2.4.1 CVS命令格式
2.4.2 环境变量
2.4.3 引入一个新项目
2.4.4 开始项目工作
2.4.5 检查资料库中的修改
2.4.6 将修改更新到资料库中
2.4.7 释放项目
2.4.8 检查修改
2.4.9 从项目中添加和删除文件
2.4.10 关键词替代
2.5 修订、标签和分支
2.5.1 修订版本
2.5.2 标签
2.5.3 分支
2.6 多用户CVS
2.6.1 协同工作
2.6.2 使用Watch命令
2.7 使用CVS的更多功能
2.7.1 二进制文件
2.7.2 修正错误的注解
2.8 通过网络访问CVS
2.9 GUI CVS客户端
2.10 参考资料
2.11 小结
第3章 数据库
3.1 选择数据库
3.1.1 mSQL
3.1.2 MySQL
3.1.3 PostgreSQL
3.1.4 寻找适合自己的数据库
3.2 PostgreSQL
3.3 数据库基础
3.3.1 第一范式
3.3.2 第二范式
3.3.3 第三范式
3.3.4 降低规范化
3.3.5 一个简单的数据库
3.4 使用psql
3.4.1 psql的命令
3.4.2 数据定义命令
3.4.3 数据操作命令
3.4.4 事务处理
3.5 数据库设计技巧
3.6 参考资料
3.7 小结
第4章 与PostgreSQL接口
4.1 从代码中访问PostgreSQL
4.1.1 Libpq
4.1.2 ECPG
4.1.3 选择方法
4.2 应用
4.3 小结
第5章 MySQL
5.1 安装和试用
5.1.1 预编译软件包
5.1.2 用源代码安装
5.1.3 安装后的配置
5.2 MySQL 管理
5.2.1 命令
5.2.2 创建用户并提供权限
5.2.3 口令
5.2.4 创建数据库
5.3 在PostgreSQL和MySQL中的SQL支持
5.4 用C语言访问MySQL数据
5.4.1 连接例行程序
5.4.2 处理错误
5.4.3 执行SQL语句
5.4.4 其他的函数
5.5 参考资料
5.6 小结
第6章 处理故障
6.1 错误类别
6.2 报告错误
6.3 检测软件错误
6.4 软件错误的类型
6.5 调试语句
6.6 调试位置
6.7 准备调试
6.7.1 使用调试程序
6.7.2 GDB命令示例
6.7.3 其他GDB功能
6.8 参考资料
6.9 小结
第7章 LDAP目录服务
7.1 目录服务的概念
7.2 目录服务器结构
7.2.1 局部的命名
7.2.2 dn命名
7.2.3 对象组件
7.2.4 LDAP目录树
7.2.5 LDIF文件
7.3 安装并配置LDAP服务器
7.3.1 安装OpenLDAP的步骤
7.3.2 配置OpenLDAP
7.4 运行服务器
7.5 用C访问LDAP
7. 5.1 初始化LDAP库
7.5.2 绑定LDAP服务器
7.5.3 LDAP错误处理
7.5.4 第一个LDAP客户端程序
7.5.5 查询
7.6 修改数据
7.6.1 添加新条目
7.6.2 修改条目
7.6.3 删除条目
7.7 应用程序
7.8 参考资料
7.9 小结
第8章 利用GNOME/GTK+进行GUI编程
8.1 GTK+/GNOME库
8.2 glib
8.2.1 类型
8.2.2 宏
8.2.3 串函数
8.2.4 内存分配
8.2.5 列表
8.3 GTK+
8.3.1 窗口小部件
8.3.2 gtk_init和gtk_main
8.3.3 GTK+应用程序示例
8.4 GNOME基础
8.4.1 菜单和工具栏
8.4.2 对话框
8.4.3 GNOME应用程序示例
8.5 GNOME源树
8.5.1 配置保存
8.5.2 对话管理
8.5.3 利用popt分析命令行
8.6 GNOME/GTK+参考资料
8.7 小结
第9章 使用Glade和GTK+/GNOME构建GUI
9.1 Glade概述
9.2 Glade指南
9.2.1 主窗口
9.2.2 选项板
9.2.3 属性窗口
9.2.4 Glade构建的源树
9.2.5 lookup_widget
9.2.6 添加代码
9.2.7 libglade
9.3 DVD Store GNOME GUI
9.3.1 设计
9.3.2 编译和运行dvdstore
9.3.3 结构
9.3.4 代码
9.4 小结
第10章 Flex和Bison
10.1 输入结构
10.1.1 扫描器和句法分析器
10.1.2 生成器的工作原理
10.2 扫描器
10.2.1 一个简单的扫描器
10.2.2 扫描器说明
10.2.3 最长匹配原则
10.2.4 规则表达式
10.2.5 操作
10.2.6 改变扫描器的输入输出
10.2.7 返回标识
10.2.8 上下文相关扫描器
10.2.9 flex的选项
10.3 句法分析器
10.3.1 生成句法分析器
10.3.2 创建语法测试程序
10.3.3 标识类型
10.3.4 规则操作
10.3.5 bison选项
10.3.6 语法中的冲突
10.3.7 数学表达式
10.4 参考资料
10.5 小结
第11章 测试工具
11.1 测试需求类型
11.1.1 应用程序结构
11.1.2 步骤
11.1.3 普通测试
11.1.4 回归测试
11.1.5 一个测试程序
11.1.6 测试dvdstore程序
11.1.7 脚本测试
11.1.8 expect
11.1.9 内存问题
11.1.10 安装mpatrol
11.1.11 使用mpatrol
11.1.12 测试覆盖
11.1.13 性能测试
11.2 小结
第12章 安全程序设计
12.1 安全程序设计的概念
12.2 为什么安全程序设计是困难的
12.2.1 文件系统安全
12.2.2 验证用户
12.2.3 安全地使用密码术
12.2.4 安全网络编程
12.2.5 书写协议
12.2.6 标准网络密码工具
12.2.7 环境问题
12.2.8 Python
12.2.9 PHP
12.3 参考资料
12.4 小结
第13章 使用KDE/Qt进行GUI编程
13.1 简介
13.1.1 关于Qt
13.1.2 关于KDE
13.1.3 安装Qt
13.1.4 安装KDE
13.1.5 库
13.2 使用Qt编写应用程序
13.2.1 开始“Hello World”
13.2.2 使用tmake来简化Makefile文件的管理
13.2.3 信号和插槽
13.2.4 再访“Hello World”
13.2.5 从基类中派生
13.2.6 窗口小部件
13.2.7 布局
13.3 使用KDE编写应用程序
13.4 参考资料
13.5 小结
第14章 用KDE/Qt写DVD商店图形用户界面
14.1 应用程序设计
14.1.1 应用程序设计
14.1.2 主窗口
14.1.3 会员对话框
14.1.4 租赁对话框
14.1.5 租赁报告对话框
14.1.6 搜索窗口
14.1.7 设置管理器
14.2 代码的KDE转换
14.3 KConfig和SettingManager函数
14.4 参考资料
14.5 小结
第15章 Python
15.1 简介
15.1.1 特征
15.1.2 Python:工作的好帮手
15.1.3 并非适合于任何工作
15.2 安装Python
15.3 运行Python
15.3.1 交互式解释器
15.3.2 命令参数
15.3.3 脚本参数
15.3.4 可执行的“Standalone”
15.4 详解
15.4.1 解释器和字节编译
15.4.2 注解语法
15.4.3 区分大小写
15.4.4 内建数据类型和运算符
15.4.5 变量
15.4.6 块结构的语法
15.4.7 语句的语法
15.4.8 函数
15.4.9 内部函数
15.4.10 名称空间
15.4.11 模块和包
15.4.12 标准产品中的一些模块
15.4.13 类和对象
15.4.14 扩展的Python
15.5 一个例程:精打细算
15.6 在线参考资料
15.7 小结
第16章 使用PHP创建Web界面
16.1 PHP和服务器端的脚本
16.1.1 服务器端的脚本
16.1.2 PHP的功能
16.2 安装和配置PHP
16.3 PHP语法简介
16.3.1 变量、常数和数据类型
16.3.2 PHP的运算符
16.3.3 语句
16.3.4 函数
16.3.5 数组
16.4 在DVD程序中使用PHP
16.5 应用程序
16.5.1 登录
16.5.2 预订状态
16.5.3 查找片名
16.5.4 预订片名
16.5.5 删除
16.5.6 dvdstorefunctions.php
16.5.7 dvdstorecommon.php
16.5.8 dvdstorelogin.php
16.5.9 dvdstoresearch.php
16.5.10 dvdstorestatus.php
16.5.11 dvdstorecancel.php
16.5.12 dvdstorereserve.php
16.6 参考资料
16.7 小结
第17章 使用C/C++嵌入和扩展Python
17.1 在C/C++中开发扩展模块
17.1.1 所需软件工具
17.1.2 使用SWIG扩展Python
17.2 使用C API扩展Python
17.2.1 Python对象类型
17.2.2 引用记数和所有权
17.2.3 开发C扩展模块的概念
17.2.4 简单函数
17.2.5 一个略微复杂的函数
17.2.6 全局解释器锁定
17.2.7 创建新的Python对象类型
17.2.8 使用C API封装C++对象
17.3 在C/C++中嵌入Python
17.3.1 嵌入开发环境
17.3.2 使用高级函数嵌入Python
17.3.3 将主程序静态链接到扩展模块上
17.3.4 使用低级调用嵌入Python
17.4 一般性建议
17.5 参考资料
17.6 小结
第18章 远程过程调用
18.1 概述
18.2 一个简单的网络DVD商店数据库
18.2.1 BSD 套接字
18.2.2 使用BSD套接字接口的编程主题
18.2.3 ONC RPC 结构和概念
18.3 在DVD商店应用程序中使用RPC的原因
18.4 RPC工具和实用程序
18.5 将RPC应用到DVD商店
18.5.1 没有参数或返回值的函数
18.5.2 带简单参数和简单返回类型的函数
18.5.3 更复杂的示例
18.5.4 返回数组
18.5.5 客户端超时
18.6 认证
18.6.1 AUTH_NONE
18.6.2 AUTH_UNIX
18.6.3 客户端认证支持
18.6.4 服务器端认证支持
18.7 用/etc/inetd.conf来使用RPC服务器
18.8 简化网络编程的其他方法
18.9 参考资料
18.10 小结
第19章 多媒体与Linux
19.1 现状
19.2 程序集成
19.3 声音
19.3.1 设备
19.3.2 处理标准的音频格式
19.3.3 自己编程
19.4 动画
19.4.1 软件播放器
19.4.2 硬件播放器
19.4.3 混合
19.5 政治和法律问题
19.6 参考资料
19.7 小结
第20章 CORBA
20.1 接口定义语言
20.2 对象请求代理
20.3 交互操作式对象引用
20.4 对象适配器
20.5 服务器
20.6 命名和交易服务
20.7 评价CORBA
20.8 CORBA与RPC
20.9 CORBA和套接字
20.10 与CORBA类似的系统
20.10.1 DCOM或COM+
20.10.2 Java远程方法调用
20.10.3 企业JavaBeans
20.10.4 IBM MQSeries
20.10.5 SOAP
20.11 IDL:定义接口
20.11.1 模块
20.11.2 接口
20.11.3 基本数据类型
20.11.4 模板类型
20.11.5 DVD应用程序示例
20.12 语言映射
20.12.1 语言映射组件
20.12.2 C映射
20.13 介绍性示例:简单消息系统
20.13.1 简单消息传递
20.13.2 在IDL中使用ORBit
20.13.3 消息客户
20.13.4 消息服务器
20.13.5 编辑ORBit应用程序
20.13.6 运行消息应用程序
20.14 参考资料
20.15 小结
第21章 用ORBit实现CORBA
21.1 为DVD商店应用程序使用CORBA
21.1.1 DVD客户
21.1.2 DVD服务器
21.1.3 日志服务器
21.1.4 验证服务器
21.1.5 客户代码
21.1.6 记录服务器
21.1.7 DVD服务器
21.1.8 集中在一起
21.2 使用libgnorba
21.3 为多主机使用配置ORBit
21.4 GOAD—GNOME对象活动目录
21.5 CORBA在GNOME上的使用
21.6 高级CORBA功能
21.6.1 动态接口调用
21.6.2 CORBAServices
21.6.3 CORBAFacilities
21.6.4 设计和运行可扩展的CORBA服务
21.7 参考资料
21.8 小结
第22章 无盘系统
22.1 历史回顾
22.2 没有磁盘
22.3 为什么要建立无盘系统
22.4 它的工作原理
22.4.1 启动无盘系统
22.4.2 无盘系统的网络标识
22.4.3 运行操作系统
22.5 服务器配置
22.6 创建引导镜像
22.7 无盘Linux内核
22.8 引导文件系统
22.9 问题
22.10 客户应用程序
22.11 小结
第23章 XML和libxml
23.1 XML文档结构
23.1.1 XML语法
23.1.2 结构完善的XML
23.1.3 有效的XML
23.2 XML句法分析
23.2.1 DOM
23.2.2 SAX
23.2.3 LibXML a.k.a. gnome-xml
23.2.4 完整的解析器
23.3 参考资料
23.4 小结
第24章 Beowulf群
24.1 硬件设置
24.2 软件配置
24.3 Beowulf群件编程
24.4 使用MPI编程
24.4.1 MPI程序的基本功能
24.4.2 编译并执行一个简单的MPI程序
24.4.3 分布式的MP3编码器
24.4.4 Beowulf群的通信性能
24.4.5 MPI的高级特性
24.4.6 一些MPI编程的例子
24.5 用PVM编程
24.5.1 与MPI的比较
24.5.2 获取并安装PVM
24.5.3 PVM库例程
24.5.4 一个PVM例子程序
24.6 参考资料
24.7 小结
第25章 文件编制
25.1 读者对象
25.2 终端用户文件编制:GUI
25.2.1 在本地机上运行文件GUI
25.2.2 文件Web GUI
25.3 高级用户/系统管理员文件编制
25.3.1 命令行选择:提供--help
25.3.2 手册页
25.3.3 保持事件在管理范围内
25.3.4 字体
25.3.5 段落
25.3.6 表
25.3.7 为API编写手册页
25.3.8 下一代manpage—info文件
25.4 从单个程序到分布系统的结构
25.5 文件编制工具
25.5.1 仍然很强大的旧的TeX和LaTeX
25.5.2 一个新的种类:HTML、XML和DocBook
25.5.3 HOWTO和FAQ文件
25.6 开发者文件编制
25.6.1 Perl的POD方法
25.6.2 文献程序编程
25.6.3 次要的文献程序编程
25.6.4 文件交换
25.6.5 PDF文件
25.7 小结
第26章 设备驱动程序
26.1 执行环境
26.2 模块和初始化代码
26.3 链接段
26.4 PCI设备和驱动程序
26.4.1 结构体pci_dev
26.4.2 查找PCI设备
26.4.3 PCI驱动程序
26.4.4 PCI访问函数
26.4.5 资源分配
26.4.6 中断处理器
26.4.7 访问用户空间存储器
26.4.8 kiobuf体系结构
26.4.9 锁定原语
26.4.10 调度和等待队列
26.4.11 模块使用数
26.4.12 构建
26.5 怎样处理新驱动程序
26.6 小结
第27章 应用程序的发布
27.1 RPM软件包
27.1.1 RPM用户
27.1.2 我们已经安装了什么
27.1.3 RPM数据库
27.1.4 对一个RPM包的分析
27.1.5 源代码包
27.2 Configure、autoconf和automake文件
27.3 建立一个RPM包
27.4 补丁
27.4.1 制作补丁
27.4.2 补丁的应用
27.5 GNATS
27.6 小结
第28章 国际化
28.1 I18N术语
28.2 Unicode是解决方案吗
28.3 字符编码问题
28.3.1 ISO 2022:编码字符集的扩展技术
28.3.2 使用Unicode编程
28.4 I18N 模型和系统环境
28.4.1 POSIX本地模型
28.4.2 X/Open 兼容向导
28.5 输出格式和输入处理
28.6 I18N编程的实际考虑
28.6.1 I18N和内部文本处理
28.6.2 用locale变量编程
28.6.3 I18N和Xlib编程
28.6.4 I18N和Linux GUI
28.6.5 I18N和Linux软件开发的现状
28.7 在实际软件开发工程中的I18N
28.7.1 面向对象编程和I18N
28.7.2 应用生成器和I18N
28.7.3 Linux I18N的下一步
附录A GTK+和GNOME 对象参考
附录B DVD商店RPC协议定义
附录C 开放源代码许可
附录D 支持、勘误及P2P.Wrox.Com
猜您喜欢