datasheet
超过460,000+ 应用技术资源下载
null

【Linux典藏大系】Linux环境C程序设计

  • 1星
  • 日期: 2013-04-16
  • 大小: 96B
  • 所需积分:1分
  • 下载次数:15
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: linux

图书描述

出版日期: 2010年1月1日 

Linux操作系统是一种类UNIX完整的操作系统,它不仅功能强大、运行稳定,而且用户可免费使用。《Linux环境C程序设计》由浅入深,循序渐进地讲授在Linux系统下使用C语言进行软件开发的方法。全书内容包括Linux的基本概念和操作方法、C语言编程方法、D-BUS和线程控制、网络协议和LibCurl网络编程、数据库C语言编程接口,以及GTK+界面开发技术,并将许多实际程序开发案例贯穿在全书中。为了便于读者学习,《Linux环境C程序设计》引入实际应用开发中具有一定难度的项目——多媒体软件的开发,希望读者不但能掌握Linux系统C语言开发技术,而且还能获得先进的软件工程思想,具备与国际一流的软件工程师共同工作的能力。

《Linux环境C程序设计》附带1张DVD光盘,内容为专门为《Linux环境C程序设计》录制的7小时教学视频、《Linux环境C程序设计》涉及的源代码、Ubuntu安装光盘的镜像文件和另外赠送的36.5小时Linux专题学习视频。

《Linux环境C程序设计》适合广大软件开发人员、开源软件爱好者和大中专院校学生阅读,尤其适合有一定C语言编程技术的人员使用。

编辑推荐

《Linux环境C程序设计》:

全面、系统、深入探讨Linux环境C程序设计的核心技术与思想

高屋建瓴,采用较高难度的复杂案例展示开源软件设计的思想

7小时多媒体语音视频讲解

另外赠送36.5小时Linux专题视频、Ubuntu安装文件

《Linux环境C程序设计》重点内容及特色◎《Linux环境C程序设计》是一本全面介绍Linu×系统开发技术的教程。涉及C/C++语言开发技术和Linux系统中图形界面、系统程序、数据库程序、网络程序等开发技术。

◎《Linux环境C程序设计》将Linux系统的软件开发技术与软件工程、软件设计思想和开源软件的思想融会贯通,通过阅读《Linux环境C程序设计》,读者不但可以深入理解Linux系统的软件开发原理,还能通过案例实践软件工程及开源软件的思想。

◎《Linux环境C程序设计》中的每个知识点都列举了典型实例进行讲解,必要时给出了代码及解释。书中的代码都有祥细注释,阅读起来非常容易理解。

◎《Linux环境C程序设计》提供了一个有较高难度的媒体播放器案例,并且贯穿于全书的讲解中。通过学习该案例,读者能获得先进的软件工程思想,具备与国际一流的软件工程师共同工作的能力。◎《Linux环境C程序设计》作者长期致力于Linux环境的开发工作,对Linux环境开发有着深刻的认识和丰富的经验,《Linux环境C程序设计》全面总结了他们对Linux环境开发的理解,充满了思想的火花。

《Linux环境C程序设计》读者对象

◎Linux环境C编程的入门与提高人员

◎大中专院校计算机及相关专业的学生◎软件开发从业人员

◎相关社会培训班的学员◎开源软件开发爱好者

◎Linux编程爱好者

特别提示

《Linux环境C程序设计》适合培训机构和大中专院校作为教材使用。为了方便教学,《Linux环境C程序设计》专门配备了教学P要的老师请发电子邮件至bookservice2008@163.com索取。索取时请提供身份信息。超值、大容量DVD光盘◎7小时多媒体语音教学视频◎《Linux环境C程序设计》源文件◎Ubuntu安装光盘的镜像文件(赠送)◎36.5小时Linux专题讲座视频(赠送)

内容全面:涵盖Linux环境C编程的基础知识、高级技术与实践经验

融会贯通:将Linux系统开发技术、C/C++开发技术及软件工程思想结合起来讲解

内容深入:深入介绍GNOME:桌面环境下的图形界面开发,代码达到可复用水平

重点突出:深入解析Linux调用函数功能,不用具备操作系统与Linux内核知识即可掌握

实践性强:全书贯穿近200个示例和近100个实例进行讲解,非常实用

案例经典:用较高难度的媒体播放器案例贯穿全书,并提供了大量的开发技巧

视频讲解:专门录制了7小时多媒体教学视频讲解书中的重点内容 

作者简介

徐诚,毕业于华中科技大学计算机通信工程专业。擅长C与C++程序设计,精通Linux内核和相关开发技术。从事Linux系统开发工作多年,拥有丰富的系统开发经验。曾多次在专业期刊发表技术文章,并长期在CSDN担任社区专家。2008年独立开发的基于移动Linux系统的MISSMOBLIN人工智能助手软件,获得了Intel公司举办的YourMove软件大赛中国区的第五名。

高莹婷,获湖北大学电子信息工程专业和法学专业双学士学位。擅长网络协议开发及数据库建模。熟悉Linux系统程序开发和数据库开发。从事卫生系统行业软件开发多年,负责开发了基于Linux系统环境的HIS系统。曾经在多个专业技术期刊发表相关作品百余篇。因工作积极热忱,乐于为大众普及专业知识,2007年被《楚天都市报》和《武汉晨报》评为优秀通信员。 

目录

目录

第1篇 Linux基础. 

第1章 Linux系统概述和安装 2 

1.1 引言 2 

1.1.1 GNU项目简介 2 

1.1.2 Linux起源 2 

1.1.3 Linux发展现状 3 

1.1.4 免费软件与开源软件 4 

1.2 Linux内核与版本 4 

1.2.1 Linux内核介绍 4 

1.2.2 Linux所支持的硬件平台 5 

1.2.3 常用Linux版本 5 

1.3 系统安装 6 

1.3.1 安装前准备 7 

1.3.2 系统需求 7 

1.3.3 硬盘分区 7 

1.3.4 图形方式安装Linux 8 

1.3.5 升级最新内核 16 

1.3.6 安装中文支持 16 

1.4 小结 16 

第2章 Linux基本操作 17 

2.1 登录 17 

2.1.1 shell程序 17 

2.1.2 控制台 17 

2.1.3 终端 18 

2.2 文件和目录 18 

2.2.1 文件系统 19 

2.2.2 文件名 20 

2.2.3 路径名 20 

2.2.4 工作目录 21 

2.2.5 起始目录 21 

2.3 输入和输出 21 

2.3.1 文件描述符 21 

2.3.2 标准输入、标准输出和标准错误 21 

2.3.3 标准输入输出函数 22 

2.4 小结 22 

第3章 Linux GCC/G++编译器与调试器 23 

3.1 GCC/G++编译器 23 

3.1.1 GCC/G++编译器安装 23 

3.1.2 GCC/G++编译命令 23 

3.1.3 GCC/G++编译选项 24 

3.1.4 GCC/G++编译器执行过程 24 

3.2 程序和进程 25 

3.2.1 程序 25 

3.2.2 进程和PID 25 

3.3 ANSI C标准 25 

3.3.1 函数原型 26 

3.3.2 类属指针 26 

3.3.3 原始系统数据类型 26 

3.4 编译hello world 26 

3.4.1 使用VI编写源代码 27 

3.4.2 程序的编译与连接 27 

3.4.3 使用终端运行程序 28 

3.5 GDB调试器 28 

3.5.1 GDB调试器概述 28 

3.5.2 GDB调试器安装 28 

3.5.3 GDB常用调试命令 29 

3.5.4 在GDB下运行程序 29 

3.5.5 检查数据 29 

3.6 小结 30 

第4章 Linux开发环境 31 

4.1 文本编辑工具 31 

4.1.1 VIM使用方法 31 

4.1.2 Emacs使用方法 32 

4.2 集成开发环境 33 

4.2.1 Eclipse介绍 33 

4.2.2 Kdevelop介绍 33 

4.3 使用Eclipse开发C/C++语言程序 34 

4.3.1 安装与配置Eclipse 34 

4.3.2 Eclipse界面 34 

4.3.3 编译与运行源代码 35 

4.3.4 Debug源代码 36 

4.4 小结 37 

第2篇 C/C++语言基础 

第5章 C语言编程基础 40 

5.1 程序设计语言的发展 40 

5.1.1 机器语言 40 

5.1.2 汇编语言 40 

5.1.3 高级语言 40 

5.2 C语言的特点 41 

5.2.1 C语言是中级语言 41 

5.2.2 C语言是结构化语言 42 

5.2.3 C语言是程序员的语言 42 

5.3 C语言的程序结构 42 

5.3.1 基本程序结构 43 

5.3.2 函数库和链接 44 

5.3.3 开发一个C语言程序 45 

5.3.4 C语言的关键字 45 

5.4 算法 46 

5.4.1 流程图与算法的结构化描述 46 

5.4.2 用N-S图描述算法 48 

5.4.3 用PAD图描述算法 48 

5.5 软件工程概览 48 

5.5.1 认识软件工程 48 

5.5.2 瀑布模型及其改进 50 

5.5.3 迭代发布模型 50 

5.5.4 朴素软件工程思想 51 

5.6 小结 52 

第6章 数据类型、运算符和表达式 53 

6.1 C语言的数据类型 53 

6.1.1 基本类型的字长与范围 53 

6.1.2 聚合类型与修饰符 54 

6.2 常量与变量 55 

6.2.1 标识符命名 55 

6.2.2 常量 55 

6.2.3 变量 56 

6.3 整型数据 56 

6.3.1 整型常量 57 

6.3.2 整型变量 57 

6.4 浮点型数据 58 

6.4.1 浮点型常量 58 

6.4.2 浮点型变量 58 

6.5 字符型数据 58 

6.5.1 字符常量 59 

6.5.2 字符串常量 59 

6.5.3 转义字符 59 

6.5.4 符号常量 60 

6.5.5 字符变量 60 

6.6 运算符 61 

6.6.1 算术运算符 61 

6.6.2 自增和自减 61 

6.6.3 关系和逻辑运算符 62 

6.6.4 位操作符 63 

6.6.5 问号操作符 63 

6.6.6 逗号操作符 64 

6.6.7 优先级 64 

6.7 表达式 65 

6.7.1 表达式中的类型转换 65 

6.7.2 构成符cast 65 

6.7.3 空格与括号 65 

6.7.4 C语言中的简写形式 66 

6.8 C语言的预处理命令 66 

6.8.1 宏替换命令 66 

6.8.2 终止编译命令 67 

6.8.3 文件包含命令 67 

6.8.4 条件编译命令 68 

6.8.5 修改行号命令 69 

6.8.6 编译指示命令 70 

6.8.7 预定义的宏名 70 

6.8.8 注释 71 

6.9 小结 71 

第7章 程序控制结构 72 

7.1 程序的3种基本结构 72 

7.2 数据的输入与输出 72 

7.2.1 scanf()函数 72 

7.2.2 printf()函数 74 

7.2.3 getchar()函数与putchar()函数 75 

7.3 条件控制语句 76 

7.3.1 if语句 76 

7.3.2 switch语句 77 

7.4 循环控制语句 78 

7.4.1 while语句 78 

7.4.2 do-while语句 79 

7.4.3 for语句 80 

7.4.4 break与continue语句 80 

7.5 媒体播放器——建立程序结构 81 

7.5.1 编写伪代码 82 

7.5.2 建立媒体播放器程序结构 82 

7.6 小结 85 

第8章 数组与指针 86 

8.1 一维数组 86 

8.1.1 一维数组的一般形式 86 

8.1.2 字符串使用的一维数组 88 

8.2 二维数组 89 

8.2.1 二维数组的一般形式 89 

8.2.2 二维字符串数组 89 

8.3 多维数组 90 

8.4 指针与指针变量 91 

8.5 指针变量的定义与引用 92 

8.5.1 指针变量的定义 92 

8.5.2 指针变量的引用 93 

8.6 指针与数组 94 

8.6.1 指针与一维数组 94 

8.6.2 指针与二维数组 95 

8.6.3 指针与字符串数组 96 

8.7 指针的地址分配 96 

8.8 指针数组 97 

8.9 指向指针的指针 97 

8.10 媒体播放器——建立播放列表 98 

8.10.1 建立一个播放列表 98 

8.10.2 对播放列表排序 103 

8.11 小结 104 

第9章 函数 105 

9.1 函数说明与返回值 105 

9.1.1 函数的类型说明 105 

9.1.2 返回语句 106 

9.2 函数的作用域规则 107 

9.2.1 局部变量 107 

9.2.2 全局变量 108 

9.2.3 动态存储变量 109 

9.2.4 静态存储变量 110 

9.3 函数的调用与参数 110 

9.3.1 形式参数与实际参数 110 

9.3.2 赋值调用与引用调用 111 

9.4 递归 111 

9.5 实现问题 112 

9.5.1 参数和通用函数 113 

9.5.2 效率 113 

9.6 函数库和文件 113 

9.6.1 程序文件的大小 114 

9.6.2 分类组织文件 114 

9.6.3 函数库 115 

9.7 main()函数的参数 116 

9.8 媒体播放器——建立核心控制模块 117 

9.8.1 通过函数传递参数 117 

9.8.2 建立媒体播放器核心控制模块 120 

9.9 小结 124 

第10章 字符及字符串处理 125 

10.1 字符编码 125 

10.1.1 ASCII编码 125 

10.1.2 Unicode编码 126 

10.2 字符处理库 126 

10.3 字符串转换函数 127 

10.4 字符串处理函数 129 

10.5 字符串比较函数 130 

10.6 字符串查找函数 131 

10.7 字符串内存函数 132 

10.8 字符串其他函数 134 

10.9 媒体播放器——实现播放列表检索功能 134 

10.9.1 对播放列表中整个字符串进行排序 134 

10.9.2 在播放列表中查找字符串 135 

10.10 小结 140 

第11章 结构体与共用体 141 

11.1 结构体类型变量的定义和引用 141 

11.1.1 结构体类型变量的定义 141 

11.1.2 结构体类型变量的引用 142 

11.1.3 结构体类型变量的初始化 143 

11.2 结构体数组的定义和引用 144 

11.3 结构体指针的定义和引用 144 

11.3.1 指向结构体类型变量的使用 145 

11.3.2 指向结构体类型数组的指针的使用 145 

11.4 共用体 146 

11.4.1 共用体的定义 146 

11.4.2 共用体变量的引用 147 

11.5 媒体播放器——建立媒体库 148 

11.5.1 设计媒体库中的数据结构 148 

11.5.2 媒体库的基本操作 151 

11.5.3 添加文件到媒体库 153 

11.5.4 在媒体库中查找文件 155 

11.5.5 从媒体库删除选定文件 157 

11.5.6 从媒体库删除所有文件 158 

11.6 小结 158 

第12章 C++语言编程基础 159 

12.1 类和数据抽象 159 

12.1.1 用类实现数据抽象 159 

12.1.2 类作用域和访问类成员 161 

12.1.3 从实现中分离接口 161 

12.1.4 控制访问成员 162 

12.1.5 构造函数和析构函数 162 

12.1.6 const对象和const成员函数 163 

12.1.7 friend对象和friend类 163 

12.1.8 this指针 165 

12.1.9 动态内存分配 165 

12.1.10 static类成员 165 

12.2 C++特性 166 

12.2.1 运算符重载 166 

12.2.2 继承 167 

12.2.3 虚拟函数和多态性 168 

12.2.4 流输入与输出 169 

12.2.5 模板 169 

12.2.6 异常处理 170 

12.3 小结 170 

第3篇 Linux系统编程 

第13章 文件操作 172 

13.1 文件属性与权限 172 

13.1.1 文件属性 172 

13.1.2 文件权限 173 

13.1.3 管理文件权限 173 

13.2 文件管理 174 

13.2.1 系统调用原理 174 

13.2.2 打开文件、新建文件和关闭文件操作 174 

13.2.3 文件状态和属性操作 177 

13.2.4 目录操作 179 

13.2.5 删除目录或文件操作 181 

13.2.6 错误处理 182 

13.3 媒体播放器——增强媒体库功能 182 

13.3.1 添加目录到媒体库 183 

13.3.2 搜索本地磁盘中所有媒体文件 184 

13.4 小结 184 

第14章 文件I/O操作 185 

14.1 非缓冲文件操作 185 

14.1.1 使用read()读取文件 185 

14.1.2 使用write()写入文件 186 

14.1.3 随机读写文件 187 

14.2 缓冲文件操作 188 

14.2.1 打开与关闭文件流 188 

14.2.2 读取与写入文件流 189 

14.2.3 文件流的格式化输入与输出 191 

14.2.4 文件流的定位操作 192 

14.2.5 文件流操作的其他函数 193 

14.2.6 文件流操作的错误处理 193 

14.3 媒体播放器——完善播放列表 194 

14.3.1 读取播放列表文件 194 

14.3.2 将播放列表保存为文件 196 

14.4 小结 197 

第15章 进程控制 198 

15.1 进程的基本概念 198 

15.1.1 进程状态和状态转换 199 

15.1.2 进程控制 201 

15.1.3 进程调度 202 

15.2 进程基本操作 202 

15.2.1 fork系统调用 202 

15.2.2 exec系统调用 204 

15.2.3 exit系统调用 205 

15.2.4 wait系统调用 206 

15.2.5 sleep函数调用 207 

15.3 进程的特殊操作 207 

15.3.1 获得进程ID 207 

15.3.2 setuid和setgid系统调用 208 

15.3.3 setpgrp和setpgid系统调用 208 

15.3.4 chdir系统调用 209 

15.3.5 chroot系统调用 209 

15.3.6 nice系统调用 209 

15.4 小结 209 

第16章 进程间通信 210 

16.1 进程间使用管道通信 210 

16.1.1 pipe系统调用 211 

16.1.2 dup系统调用 212 

16.2 进程间使用D-Bus通信 213 

16.2.1 D-Bus的基本概念 213 

16.2.2 D-Bus的用例 214 

16.3 媒体播放器——完善退出和音量控制功能 217 

16.3.1 媒体播放器在桌面环境退出时响应 217 

16.3.2 调整系统音量 218 

16.4 小结 220 

第17章 线程控制 221 

17.1 线程基本概念 221 

17.2 线程的实现 221 

17.2.1 用户态线程 222 

17.2.2 内核态线程 222 

17.3 POSIX线程库 222 

17.3.1 创建线程 222 

17.3.2 结束线程 223 

17.4 同步 226 

17.4.1 用信号量进行同步 226 

17.4.2 用互斥量进行同步 228 

17.5 取消线程 230 

17.6 多线程的实现 231 

17.7 小结 233 

第4篇 Linux网络编程与数据库编程 

第18章 网络编程基础 236 

18.1 计算机网络组成 236 

18.1.1 网络结构 236 

18.1.2 OSI 参考模型 238 

18.1.3 TCP/IP参考模型 238 

18.2 TCP/IP协议.. 240 

18.2.1 IP协议与Internet 240 

18.2.2 IP互联网协议地址 241 

18.2.3 TCP协议 242 

18.2.4 UDP协议 243 

18.3 Socket套接字 244 

18.3.1 Socket套接字简介 244 

18.3.2 创建套接字 245 

18.3.3 套接字地址 246 

18.3.4 套接字的名字 247 

18.3.5 创建套接字队列 247 

18.3.6 接受连接 248 

18.3.7 请求连接 248 

18.3.8 关闭连接 249 

18.3.9 套接字通信 249 

18.4 网络通信 251 

18.4.1 查询主机名称 251 

18.4.2 Internet守护进程 253 

18.5 小结 254 

第19章 网络编程函数库 255 

19.1 HTTP与FTP函数库 255 

19.1.1 libcurl函数库简介 255 

19.1.2 libcurl中的主要函数 256 

19.1.3 使用libcurl实现简单的HTTP访问 258 

19.2 SMTP、POP与IMAP函数库 259 

19.2.1 使用libESMTP函数库实现电子邮件发送 260 

19.2.2 使用libspopc函数库实现POP访问 261 

19.2.3 使用mailutils函数库实现IMAP访问 263 

19.3 即时通信函数库 264 

19.3.1 libpurple函数库简介 264 

19.3.2 即时通信软件工作机制 264 

19.3.3 使用libpurple函数库接入服务器 266 

19.4 小结 272 

第20章 数据库 273 

20.1 数据的存储与访问 273 

20.1.1 使用数据文件 273 

20.1.2 使用数据库 277 

20.2 Berkeley DB数据包 279 

20.2.1 Berkeley DB数据包简介 279 

20.2.2 Berkeley DB数据包连接和使用 282 

20.2.3 Berkeley DB数据包访问 287 

20.2.4 Berkeley DB数据包中的游标 289 

20.3 PostgreSQL数据库服务器介绍 292 

20.3.1 PostgreSQL基本概念 292 

20.3.2 数据库连接函数 294 

20.3.3 命令执行函数 299 

20.3.4 检索查询结果函数 303 

20.4 小结 306 

第21章 Linux系统常用数据库及接口 307 

21.1 SQLite数据库 307 

21.1.1 SQLite简介 307 

21.1.2 连接SQLite数据库 309 

21.1.3 SQLite命令执行函数 312 

21.1.4 SQLite检索查询结果函数 314 

21.2 MySQL数据库 316 

21.2.1 MySQL简介 316 

21.2.2 连接MySQL数据库 318 

21.2.3 查询MySQL数据库 321 

21.2.4 处理MySQL查询结果 322 

21.3 大型数据库与通用数据库接口 325 

21.3.1 连接Oracle数据库 325 

21.3.2 通用数据库接口 328 

21.4 媒体播放器——媒体库的数据库实现 334 

21.4.1 建立和连接数据库 335 

21.4.2 建立媒体库数据表 336 

21.4.3 管理媒体库数据表 337 

21.5 小结 341 

第5篇 Linux界面开发 

第22章 界面开发基础 344 

22.1 Linux常用桌面环境 344 

22.1.1 GNOME桌面环境 344 

22.1.2 KDE桌面环境 346 

22.1.3 移动设备与HILDON桌面环境 348 

22.2 GTK+图形环境介绍 349 

22.3 GLib库介绍 350 

22.3.1 基础类型 351 

22.3.2 对核心应用的支持 351 

22.3.3 实用功能 353 

22.3.4 数据类型 353 

22.4 GObject对象介绍 354 

22.4.1 对象系统 355 

22.4.2 GObject系统中宏定义 356 

22.4.3 GTypeInfo结构 358 

22.4.4 信号机制 359 

22.5 2D图形引擎Cairo介绍 359 

22.6 多媒体库GStreamer介绍 361 

22.6.1 过滤器 362 

22.6.2 衬垫 363 

22.6.3 箱柜 365 

22.6.4 精灵衬垫 366 

22.7 搭建GTK+开发环境 367 

22.8 小结 370 

第23章 界面构件开发 371 

23.1 常用界面构件 371 

23.1.1 按钮构件 371 

23.1.2 调整对象 374 

23.1.3 范围构件 374 

23.1.4 标签构件 375 

23.1.5 箭头构件 376 

23.1.6 工具提示对象 377 

23.1.7 进度条 377 

23.1.8 对话框 378 

23.1.9 标尺 379 

23.1.10 状态栏 381 

23.1.11 文本输入构件 382 

23.1.12 微调按钮 384 

23.1.13 组合输入框 387 

23.1.14 日历 389 

23.1.15 颜色选择 391 

23.1.16 文件选择 394 

23.2 复合构件 396 

23.2.1 快捷标签 396 

23.2.2 绘图区 399 

23.2.3 字体选择对话框 407 

23.2.4 消息对话框 411 

23.2.5 图像构件 413 

23.2.6 文本视区 417 

23.3 菜单构件 418 

23.3.1 菜单栏 418 

23.3.2 菜单构件 419 

23.3.3 菜单项 421 

23.3.4 图形菜单项 424 

23.3.5 复选菜单项 426 

23.3.6 单选菜单项 428 

23.3.7 分隔菜单项 429 

23.4 RC文件 429 

23.4.1 使用RC文件 430 

23.4.2 RC文件格式 431 

23.5 小结 434 

第24章 界面布局 435 

24.1 界面布局基本概念 435 

24.1.1 界面的宽度与高度 435 

24.1.2 窗体基本组成 437 

24.1.3 布局约定 439 

24.2 组装盒构件 441 

24.2.1 组装盒的原理 441 

24.2.2 组装盒示范程序 442 

24.2.3 表组装的原理 444 

24.2.4 表组装示例 445 

24.3 容器 447 

24.3.1 事件盒 447 

24.3.2 对齐构件 448 

24.3.3 固定容器 450 

24.3.4 布局容器 451 

24.3.5 框架构件 453 

24.3.6 比例框架 455 

24.3.7 分栏窗体构件 456 

24.3.8 视角构件 457 

24.3.9 滚动条窗体 458 

24.3.10 按钮盒 459 

24.3.11 工具栏 462 

24.3.12 笔记本 464 

24.4 媒体播放器——实现界面 469 

24.4.1 使用原型法设计媒体播放器界面 469 

24.4.2 编写媒体播放器界面代码 472 

24.5 小结 481 

第25章 信号与事件处理 482 

25.1 信号函数与回调函数 482 

25.1.1 信号函数 482 

25.1.2 回调函数 486 

25.2 常用GTK+信号与事件 488 

25.2.1 GtkObject类信号 488 

25.2.2 GtkWidget界面构件信号 489 

25.2.3 GtkWindow窗体构件信号 498 

25.2.4 GtkContainer容器构件信号 499 

25.2.5 GtkCalendar日历构件信号 499 

25.2.6 GtkTextView文本视区构件信号 500 

25.3 小结 501 

第26章 Glade设计程序界面 502 

26.1 Glade简介 502 

26.2 构造图形界面 503 

26.2.1 添加窗体 503 

26.2.2 添加容器 509 

26.2.3 添加构件 516 

26.2.4 设置构件属性 519 

26.2.5 添加事件和回调 520 

26.3 C语言代码联编 522 

26.3.1 libglade函数库编程基础 522 

26.3.2 使用libglade多语言支持 524 

26.4 小结 528 

第6篇 Linux环境C编程项目实践 

第27章 媒体播放器——项目完整实践 530 

27.1 软件工程实战 530 

27.1.1 项目需求分析 530 

27.1.2 软件需求说明 531 

27.1.3 项目视图的解决方案 532 

27.2 软件设计 533 

27.2.1 需求分析 533 

27.2.2 制订开发计划 534 

27.2.3 分工协作 535 

27.3 版本控制 536 

27.3.1 CVS服务器配置 536 

27.3.2 CVS服务器管理 537 

27.4 在Eclipse中使用CVS客户端 540 

27.4.1 从CVS服务器签出模块并创建项目 541 

27.4.2 签入文件 543 

27.4.3 使用Eclipse项目创建CVS模块 544 

27.4.4 比较文件 545 

27.4.5 管理CVS服务器 545 

27.4.6 断开项目与CVS服务器之间的关联 546 

27.5 音量控制对话框 547 

27.5.1 创建对话框 547 

27.5.2 添加垂直比例尺 547 

27.5.3 测试 548 

27.6 播放列表对话框 550 

27.6.1 创建对话框 550 

27.6.2 创建工具条和工具条按钮 551 

27.6.3 创建树视图 552 

27.6.4 创建对话框按钮 553 

27.6.5 测试 553 

27.7 媒体库对话框 554 

27.7.1 创建对话框 555 

27.7.2 创建工具条和工具条按钮 555 

27.7.3 创建分类部件和媒体信息显示部件 557 

27.7.4 创建搜索部件 559 

27.7.5 创建对话框按钮 559 

27.7.6 测试 560 

27.8 播放控制模块实现 562 

27.8.1 播放控制模块程序结构 562 

27.8.2 MP3播放功能实现 564 

27.8.3 播放中的回调处理 567 

27.9 系统集成 569 

27.10 主程序文件实现 570 

27.10.1 头文件和主函数入口 570 

27.10.2 媒体库模块初始化 571 

27.10.3 图形界面初始化 571 

27.10.4 退出前清理 572 

27.10.5 编译和运行 572 

27.11 媒体库功能集成 572 

27.11.1 初始化 573 

27.11.2 显示媒体库对话框 573 

27.11.3 添加文件 580 

27.11.4 添加目录 582 

27.11.5 删除文件信息 584 

27.11.6 删除所有文件信息 585 

27.11.7 搜索本地文件 586 

27.11.8 传递到播放列表 587 

27.11.9 查找 589 

27.12 播放列表功能集成 590 

27.12.1 初始化 590 

27.12.2 显示播放列表对话框 591 

27.12.3 添加文件 593 

27.12.4 添加目录 595 

27.12.5 打开文件 596 

27.12.6 保存文件 597 

27.12.7 删除文件 598 

27.12.8 删除全部 600 

27.12.9 排序 600 

27.13 播放控制模块集成 601 

27.13.1 播放模式设置 601 

27.13.2 开始播放 602 

27.13.3 暂停播放 603 

27.13.4 停止播放 603 

27.13.5 播放上一首 603 

27.13.6 播放下一首 604 

27.14 小结 605

更多简介内容

评论


个人中心

意见反馈

求资源

回顶部

下载专区


TI 参考设计资源库

工业电子 汽车电子 个人电子
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })