Linux环境C程序设计(第2版)
- ISBN:9787302347927
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:603
- 出版时间:2018-04-05
- 条形码:9787302347927 ; 978-7-302-34792-7
本书特色
Linux C编程经典图书,ChinaUnix社区力荐!300个示例、399分钟配套教学视频 全面、深入探讨Linux环境C程序设计的核心技术,通过较为复杂的项目开发案例,展示开源软件的设计思想
内容简介
《Linux环境C程序设计(第2版)》是获得大量读者好评的“Linux典藏大全”中的《Linux环境C程序设计》的第2版。 《Linux环境C程序设计(第2版)》提供了大量实例,供读者实战演练。配书光盘中提供了《Linux环境C程序设计(第2版)》的配套教学视频与源程序,以帮助读者更好地学习。 《Linux环境C程序设计(第2版)》共分6篇。第1篇介绍了Linux系统的安装及Linux C开发环境的搭建等;第2篇简单介绍了C语言和程序设计知识、流程图的概念、数据类型、运算符和表达式,程序控制结构、数组与指针、函数、结构体与共用体及C++语言的面向对象程序设计思想和一些新的特性;第3篇介绍了文件操作及文件I/O操作、进程控制、进程间通信及线程控制等;第4篇介绍了数据库、Linux系统常用数据库及接口、网络编程基础及网络编程函数库;第5篇介绍了界面开发基础、界面构件开发、界面布局、信号与事件处理、Glade设计程序界面等内容;第6篇详细介绍了一个媒体播放器项目案例的实现过程,以提高读者实战水平。 《Linux环境C程序设计(第2版)》涉及面广,从基本操作到高级技术和核心原理,再到项目开发,几乎涉及Linux C开发的所有重要知识。 《Linux环境C程序设计(第2版)》适合所有想全面学习Linux C开发技术的人员阅读,也适合各种使用Linux C进行开发的工程技术人员使用。 对于经常使用Linux C做开发的人员,《Linux环境C程序设计(第2版)》更是一本不可多得的案头**参考书。
目录
第1章 Linux系统概述和安装( 教学视频:31分钟)
1.1 引言
1.1.1 GNU项目简介
1.1.2 Linux起源
1.1.3 Linux发展现状
1.1.4 免费软件与开源软件
1.2 Linux内核与版本
1.2.1 Linux内核介绍
1.2.2 Linux所支持的硬件平台
1.2.3 常用Linux版本
1.3 系统安装
1.3.1 安装前的准备
1.3.2 系统需求
1.3.3 硬盘分区
1.3.4 以图形方式安装Linux
1.3.5 升级*新内核
1.3.6 安装中文支持
1.4 小结
第2章 Linux基本操作( 教学视频:29分钟)
2.1 登录
2.1.1 shell程序
2.1.2 控制台
2.1.3 终端
2.2 文件和目录
2.2.1 文件系统
2.2.2 文件名
2.2.3 路径名
2.2.4 工作目录
2.2.5 起始目录
2.3 输入和输出
2.3.1 文件描述符
2.3.2 标准输入、标准输出和标准错误
2.3.3 标准输入输出函数
2.4 小结
第3章 Linux GCC/G++编译器与调试器( 教学视频:31分钟)
3.1 GCC/G++编译器
3.1.1 GCC/G++编译器的安装
3.1.2 GCC/G++编译命令
3.1.3 GCC/G++编译选项
3.1.4 GCC/G++编译器的执行过程
3.2 程序和进程
3.2.1 程序
3.2.2 进程和PID
3.3 ANSI C标准
3.3.1 函数原型
3.3.2 类属指针
3.3.3 原始系统数据类型
3.4 编译hello world
3.4.1 使用VI编写源代码
3.4.2 程序的编译与连接
3.4.3 使用终端运行程序
3.5 GDB调试器
3.5.1 GDB调试器概述
3.5.2 GDB调试器安装
3.5.3 GDB常用调试命令
3.5.4 在GDB下运行程序
3.5.5 检查数据
3.6 小结
第4章 Linux开发环境( 教学视频:14分钟)
4.1 文本编辑工具
4.1.1 VIM的使用方法
4.1.2 Emacs的使用方法
4.2 集成开发环境
4.2.1 Eclipse介绍
4.2.2 Kdevelop介绍
4.3 使用Eclipse开发C/C++语言程序
4.3.1 安装与配置Eclipse
4.3.2 Eclipse界面
4.3.3 编译与运行源代码
4.3.4 Debug源代码
4.4 小结
第2篇 C/C++语言基础
第5章 C语言编程基础( 教学视频:27分钟)
5.1 程序设计语言的发展
5.1.1 机器语言
5.1.2 汇编语言
5.1.3 高级语言
5.2 C语言的特点
5.2.1 C语言是中级语言
5.2.2 C语言是结构化语言
5.2.3 C语言是程序员的语言
5.3 C语言的程序结构
5.3.1 基本程序结构
5.3.2 函数库和链接
5.3.3 开发一个C语言程序
5.3.4 C语言的关键字
5.4 算法
5.4.1 流程图与算法的结构化描述
5.4.2 用N-S图描述算法
5.4.3 用PAD图描述算法
5.5 软件工程概览
5.5.1 认识软件工程
5.5.2 瀑布模型及其改进
5.5.3 迭代发布模型
5.5.4 朴素软件工程思想
5.6 小结
第6章 数据类型、运算符和表达式( 教学视频:25分钟)
6.1 C语言的数据类型
6.1.1 基本类型的字长与范围
6.1.2 聚合类型与修饰符
6.2 常量与变量
6.2.1 标识符命名
6.2.2 常量
6.2.3 变量
6.3 整型数据
6.3.1 整型常量
6.3.2 整型变量
6.4 浮点型数据
6.4.1 浮点型常量
6.4.2 浮点型变量
6.5 字符型数据
6.5.1 字符常量
6.5.2 字符串常量
6.5.3 转义字符
6.5.4 符号常量
6.5.5 字符变量
6.6 运算符
6.6.1 算术运算符
6.6.2 自增和自减
6.6.3 关系和逻辑运算符
6.6.4 位操作符
6.6.5 问号操作符
6.6.6 逗号操作符
6.6.7 优先级
6.7 表达式
6.7.1 表达式中的类型转换
6.7.2 构成符cast
6.7.3 空格与括号
6.7.4 C语言中的简写形式
6.8 C语言的预处理命令
6.8.1 宏替换命令
6.8.2 终止编译命令
6.8.3 文件包含命令
6.8.4 条件编译命令
6.8.5 修改行号命令
6.8.6 编译指示命令
6.8.7 预定义的宏名
6.8.8 注释
6.9 小结
第7章 程序控制结构( 教学视频:19分钟)
7.1 程序的3种基本结构
7.2 数据的输入与输出
7.2.1 scanf()函数
7.2.2 printf()函数
7.2.3 getchar()函数与putchar()函数
7.3 条件控制语句
7.3.1 if语句
7.3.2 switch语句
7.4 循环控制语句
7.4.1 while语句
7.4.2 do-while语句
7.4.3 for语句
7.4.4 break与continue语句
7.5 媒体播放器——建立程序结构
7.5.1 编写伪代码
7.5.2 建立媒体播放器的程序结构
7.6 小结
第8章 数组与指针( 教学视频:19分钟)
8.1 一维数组
8.1.1 一维数组的一般形式
8.1.2 字符串使用的一维数组
8.2 二维数组
8.2.1 二维数组的一般形式
8.2.2 二维字符串数组
8.3 多维数组
8.4 指针与指针变量
8.5 指针变量的定义与引用
8.5.1 指针变量的定义
8.5.2 指针变量的引用
8.6 指针与数组
8.6.1 指针与一维数组
8.6.2 指针与二维数组
8.6.3 指针与字符串数组
8.7 指针的地址分配
8.8 指针数组
8.9 指向指针的指针
8.10 媒体播放器——建立播放列表
8.10.1 建立一个播放列表
8.10.2 对播放列表排序
8.11 小结
第9章 函数( 教学视频:15分钟)
9.1 函数说明与返回值
9.1.1 函数的类型说明
9.1.2 返回语句
9.2 函数的作用域规则
9.2.1 局部变量
9.2.2 全局变量
9.2.3 动态存储变量
9.2.4 静态存储变量
9.3 函数的调用与参数
9.3.1 形式参数与实际参数
9.3.2 赋值调用与引用调用
9.4 递归
9.5 实现问题
9.5.1 参数和通用函数
9.5.2 效率
9.6 函数库和文件
9.6.1 程序文件的大小
9.6.2 分类组织文件
9.6.3 函数库
9.7 main()函数的参数
9.8 媒体播放器——建立核心控制模块
9.8.1 通过函数传递参数
9.8.2 建立媒体播放器核心控制模块
9.9 小结
第10章 字符及字符串处理( 教学视频:9分钟)
10.1 字符编码
10.1.1 ASCII编码
10.1.2 Unicode编码
10.2 字符处理库
10.3 字符串转换函数
10.4 字符串处理函数
10.5 字符串比较函数
10.6 字符串查找函数
10.7 字符串内存函数
10.8 字符串的其他函数
10.9 媒体播放器——实现播放列表的检索功能
10.9.1 对播放列表中的整个字符串进行排序
10.9.2 在播放列表中查找字符串
10.10 小结
第11章 结构体与共用体( 教学视频:20分钟)
11.1 结构体类型变量的定义和引用
11.1.1 结构体类型变量的定义
11.1.2 结构体类型变量的引用
11.1.3 结构体类型变量的初始化
11.2 结构体数组的定义和引用
11.3 结构体指针的定义和引用
11.3.1 指向结构体类型变量的使用
11.3.2 指向结构体类型数组的指针的使用
11.4 共用体
11.4.1 共用体的定义
11.4.2 共用体变量的引用
11.5 媒体播放器——建立媒体库
11.5.1 设计媒体库中的数据结构
11.5.2 媒体库的基本操作
11.5.3 添加文件到媒体库
11.5.4 在媒体库中查找文件
11.5.5 从媒体库删除选定文件
11.5.6 从媒体库删除所有文件
11.6 小结
第12章 C++语言编程基础( 教学视频:7分钟)
12.1 类和数据抽象
12.1.1 用类实现数据抽象
12.1.2 类作用域和访问类成员
12.1.3 从实现中分离接口
12.1.4 控制访问成员
12.1.5 构造函数和析构函数
12.1.6 const对象和const成员函数
12.1.7 friend对象和friend类
12.1.8 this指针
12.1.9 动态内存分配
12.1.10 static类成员
12.2 C++的特性
12.2.1 运算符重载
12.2.2 继承
12.2.3 虚拟函数和多态性
12.2.4 流输入与输出
12.2.5 模板
12.2.6 异常处理
12.3 小结
第3篇 Linux系统编程
第13章 文件操作( 教学视频:14分钟)
13.1 文件的属性与权限
13.1.1 文件的属性
13.1.2 文件的权限
13.1.3 管理文件的权限
13.2 文件管理
13.2.1 系统调用的原理
13.2.2 打开文件、新建文件和关闭文件操作
13.2.3 文件状态和属性操作
13.2.4 目录操作
13.2.5 删除目录或文件操作
13.2.6 错误处理
13.3 媒体播放器——增强媒体库功能
13.3.1 添加目录到媒体库
13.3.2 搜索本地磁盘中的所有媒体文件
13.4 小结
第14章 文件I/O操作( 教学视频:15分钟)
14.1 非缓冲文件操作
14.1.1 使用read()读取文件
14.1.2 使用write()写入文件
14.1.3 随机读写文件
14.2 缓冲文件操作
14.2.1 打开与关闭文件流
14.2.2 读取与写入文件流
14.2.3 文件流的格式化输入与输出
14.2.4 文件流的定位操作
14.2.5 文件流操作的其他函数
14.2.6 文件流操作的错误处理
14.3 媒体播放器——完善播放列表
14.3.1 读取播放列表文件
14.3.2 将播放列表保存为文件
14.4 小结
第15章 进程控制( 教学视频:12分钟)
15.1 进程的基本概念
15.1.1 进程的状态和状态转换
15.1.2 进程控制
15.1.3 进程调度
15.2 进程的基本操作
15.2.1 fork系统调用
15.2.2 exec系统调用
15.2.3 exit系统调用
15.2.4 wait系统调用
15.2.5 sleep函数调用
15.3 进程的特殊操作
15.3.1 获得进程ID
15.3.2 setuid和setgid系统调用
15.3.3 setpgrp和setpgid系统调用
15.3.4 chdir系统调用
15.3.5 chroot系统调用
15.3.6 nice系统调用
15.4 小结
第16章 进程间通信( 教学视频:17分钟)
16.1 进程间使用管道通信
16.1.1 pipe系统调用
16.1.2 dup系统调用
16.2 进程间使用D-Bus通信
16.2.1 D-Bus的基本概念
16.2.2 D-Bus的用例
16.3 媒体播放器——完善退出和音量控制功能
16.3.1 媒体播放器在桌面环境退出时响应
16.3.2 调整系统音量
16.4 小结
第17章 线程控制( 教学视频:12分钟)
17.1 线程的基本概念
17.2 线程的实现
17.2.1 用户态线程
17.2.2 内核态线程
17.3 POSIX线程库
17.3.1 创建线程
17.3.2 结束线程
17.4 同步
17.4.1 用信号量进行同步
17.4.2 用互斥量进行同步
17.5 取消线程
17.6 多线程的实现
17.7 小结
第4篇 Linux网络编程与数据库开发
第18章 网络编程基础( 教学视频:15分钟)
18.1 计算机网络的组成
18.1.1 网络结构
18.1.2 OSI 参考模型
18.1.3 TCP/IP参考模型
18.2 TCP/IP协议
18.2.1 IP协议与Internet
18.2.2 IP互联网协议地址
18.2.3 TCP协议
18.2.4 UDP协议
18.3 Socket套接字
18.3.1 Socket套接字简介
18.3.2 创建套接字
18.3.3 套接字地址
18.3.4 套接字的名字
18.3.5 创建套接字队列
18.3.6 接受连接
18.3.7 请求连接
18.3.8 关闭连接
18.3.9 套接字通信
18.4 网络通信
18.4.1 查询主机名称
18.4.2 Internet守护进程
18.5 小结
第19章 网络编程函数库( 教学视频:13分钟)
19.1 HTTP与FTP函数库
19.1.1 libcurl函数库简介
19.1.2 libcurl中的主要函数
19.1.3 使用libcurl实现简单的HTTP访问
19.2 SMTP、POP与IMAP函数库
19.2.1 使用libESMTP函数库实现电子邮件的发送
19.2.2 使用libspopc函数库实现POP访问
19.2.3 使用mailutils函数库实现IMAP访问
19.3 即时通信函数库
19.3.1 libpurple函数库简介
19.3.2 即时通信软件的工作机制
19.3.3 使用libpurple函数库接入服务器
19.4 小结
第20章 数据库( 教学视频:5分钟)
20.1 数据的存储与访问
20.1.1 使用数据文件
20.1.2 使用数据库
20.2 Berkeley DB数据包
20.2.1 Berkeley DB数据包简介
20.2.2 Berkeley DB数据包的连接和使用
20.2.3 Berkeley DB数据包的访问
20.2.4 Berkeley DB数据包中的游标
20.3 PostgreSQL数据库服务器介绍
20.3.1 PostgreSQL的基本概念
20.3.2 数据库连接函数
20.3.3 命令执行函数
20.3.4 检索查询结果函数
20.4 小结
第21章 Linux系统中的常用数据库及接口( 教学视频:8分钟)
21.1 SQLite数据库
21.1.1 SQLite简介
21.1.2 连接SQLite数据库
21.1.3 SQLite命令执行函数
21.1.4 SQLite检索查询结果函数
21.2 MySQL数据库
21.2.1 MySQL简介
21.2.2 连接MySQL数据库
21.2.3 查询MySQL数据库
21.2.4 处理MySQL查询结果
21.3 大型数据库与通用数据库接口
21.3.1 连接Oracle数据库
21.3.2 通用数据库接口
21.4 媒体播放器——媒体库的数据库实现
21.4.1 建立和连接数据库
21.4.2 建立媒体库数据表
21.4.3 管理媒体库数据表
21.5 小结
第5篇 Linux界面开发
第22章 界面开发基础( 教学视频:11分钟)
22.1 Linux常用桌面环境
22.1.1 GNOME桌面环境
22.1.2 KDE桌面环境
22.1.3 移动设备与HILDON桌面环境
22.2 GTK+图形环境介绍
22.3 GLib库介绍
22.3.1 基础类型
22.3.2 对核心应用的支持
22.3.3 实用功能
22.3.4 数据类型
22.4 GObject对象介绍
22.4.1 对象系统
22.4.2 GObject系统中的宏定义
22.4.3 GTypeInfo结构
22.4.4 信号机制
22.5 2D图形引擎Cairo介绍
22.6 多媒体库GStreamer介绍
22.6.1 过滤器
22.6.2 衬垫
22.6.3 箱柜
22.6.4 精灵衬垫
22.7 搭建GTK+开发环境
22.8 小结
第23章 界面构件开发( 教学视频:6分钟)
23.1 常用界面构件
23.1.1 按钮构件
23.1.2 调整对象
23.1.3 范围构件
23.1.4 标签构件
23.1.5 箭头构件
23.1.6 工具提示对象
23.1.7 进度条
23.1.8 对话框
23.1.9 标尺
23.1.10 状态栏
23.1.11 文本输入构件
23.1.12 微调按钮
23.1.13 组合输入框
23.1.14 日历
23.1.15 颜色选择
23.1.16 文件选择
23.2 复合构件
23.2.1 快捷标签
23.2.2 绘图区
23.2.3 字体选择对话框
23.2.4 消息对话框
23.2.5 图像构件
23.2.6 文本视区
23.3 菜单构件
23.3.1 菜单栏
23.3.2 菜单构件
23.3.3 菜单项
23.3.4 图形菜单项
23.3.5 复选菜单项
23.3.6 单选菜单项
23.3.7 分隔菜单项
23.4 RC文件
23.4.1 使用RC文件
23.4.2 RC文件格式
23.5 小结
第24章 界面布局( 教学视频:8分钟)
24.1 界面布局的基本概念
24.1.1 界面的宽度与高度
24.1.2 窗体的基本组成
24.1.3 布局约定
24.2 组装盒构件
24.2.1 组装盒的原理
24.2.2 组装盒示范程序
24.2.3 表组装的原理
24.2.4 表组装示例
24.3 容器
24.3.1 事件盒
24.3.2 对齐构件
24.3.3 固定容器
24.3.4 布局容器
24.3.5 框架构件
24.3.6 比例框架
24.3.7 分栏窗体构件
24.3.8 视角构件
24.3.9 滚动条窗体
24.3.10 按钮盒
24.3.11 工具栏
24.3.12 笔记本
24.4 媒体播放器——实现界面
24.4.1 使用原型法设计媒体播放器界面
24.4.2 编写媒体播放器界面代码
24.5 小结
第25章 信号与事件处理( 教学视频:3分钟)
25.1 信号函数与回调函数
25.1.1 信号函数
25.1.2 回调函数
25.2 常用GTK+信号与事件
25.2.1 GtkObject类信号
25.2.2 GtkWidget界面构件信号
25.2.3 GtkWindow窗体构件信号
25.2.4 GtkContainer容器构件信号
25.2.5 GtkCalendar日历构件信号
25.2.6 GtkTextView文本视区构件信号
25.3 小结
第26章 Glade设计程序界面( 教学视频:7分钟)
26.1 Glade简介
26.2 构造图形界面
26.2.1 添加窗体
26.2.2 添加容器
26.2.3 添加构件
26.2.4 设置构件属性
26.2.5 添加事件和回调
26.3 C语言代码联编
26.3.1 GTK+库使用Glade项目文件
26.3.2 使用GTK+多语言支持
26.4 小结
第6篇 Linux C编程项目实战
第27章 编程项目实战——媒体播放器( 教学视频:7分钟)
27.1 软件工程实战
27.1.1 项目需求分析
27.1.2 软件需求说明
27.1.3 项目视图的解决方案
27.2 软件设计
27.2.1 需求分析
27.2.2 制订开发计划
27.2.3 分工协作
27.3 版本控制
27.3.1 CVS服务器配置
27.3.2 CVS服务器管理
27.4 在Eclipse中使用CVS客户端
27.4.1 从CVS服务器签出模块并创建项目
27.4.2 签入文件
27.4.3 使用Eclipse项目创建CVS模块
27.4.4 比较文件
27.4.5 管理CVS服务器
27.4.6 断开项目与CVS服务器之间的关联
27.5 音量控制对话框
27.5.1 创建对话框
27.5.2 添加垂直比例尺
27.5.3 测试
27.6 播放列表对话框
27.6.1 创建对话框
27.6.2 创建工具条和工具条按钮
27.6.3 创建树视图
27.6.4 创建对话框按钮
27.6.5 测试
27.7 媒体库对话框
27.7.1 创建对话框
27.7.2 创建工具条和工具条按钮
27.7.3 创建分类部件和媒体信息显示部件
27.7.4 创建搜索部件
27.7.5 创建对话框按钮
27.7.6 测试
27.8 播放控制模块实现
27.8.1 播放控制模块程序结构
27.8.2 MP3播放功能的实现
27.8.3 播放中的回调处理
27.9 系统集成
27.10 主程序文件的实现
27.10.1 头文件和主函数入口
27.10.2 媒体库模块初始化
27.10.3 图形界面初始化
27.10.4 退出前清理
27.10.5 编译和运行
27.11 媒体库功能的集成
27.11.1 初始化
27.11.2 显示媒体库对话框
27.11.3 添加文件
27.11.4 添加目录
27.11.5 删除文件信息
27.11.6 删除所有文件信息
27.11.7 搜索本地文件
27.11.8 传递到播放列表
27.11.9 查找
27.12 播放列表功能的集成
27.12.1 初始化
27.12.2 显示播放列表对话框
27.12.3 添加文件
27.12.4 添加目录
27.12.5 打开文件
27.12.6 保存文件
27.12.7 删除文件
27.12.8 删除全部
27.12.9 排序
27.13 播放控制模块的集成
27.13.1 播放模式设置
27.13.2 开始播放
27.13.3 暂停播放
27.13.4 停止播放
27.13.5 播放上一首
27.13.6 播放下一首
27.14 小结
作者简介
徐诚,毕业于华中科技大学计算机通信工程专业。擅长C与C++编程,精通Linux内核及其开发技术。从事Linux系统开发工作多年,拥有丰富的系统开发经验。曾多次在专业刊物上发表过技术文章。并长期在CSDN担任社区专家。2008年独立开发的基于移动Linux系统的MlSSMOBLIN人工智能助手软件,获得TIntel公司举办的YourMove软件大赛中国区的第五名。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0