图书介绍
Linux环境C程序设计 第2版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- 徐诚等编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302347927
- 出版时间:2014
- 标注页数:603页
- 文件大小:174MB
- 文件页数:626页
- 主题词:Linux操作系统-程序设计;C语言-程序设计
PDF下载
下载说明
Linux环境C程序设计 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1篇 Linux系统概述及开发环境搭建2
第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 以图形方式安装Linux8
1.3.5 升级最新内核14
1.3.6 安装中文支持14
1.4 小结15
第2章 Linux基本操作16
2.1 登录16
2.1.1 shell程序16
2.1.2 控制台16
2.1.3 终端17
2.2 文件和目录18
2.2.1 文件系统18
2.2.2 文件名19
2.2.3 路径名20
2.2.4 工作目录20
2.2.5 起始目录20
2.3 输入和输出21
2.3.1 文件描述符21
2.3.2 标准输入、标准输出和标准错误21
2.3.3 标准输入输出函数21
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 进程和PID25
3.3 ANSI C标准26
3.3.1 函数原型26
3.3.2 类属指针26
3.3.3 原始系统数据类型26
3.4 编译hello world27
3.4.1 使用VI编写源代码27
3.4.2 程序的编译与连接28
3.4.3 使用终端运行程序28
3.5 GDB调试器28
3.5.1 GDB调试器概述28
3.5.2 GDB调试器安装29
3.5.3 GDB常用调试命令29
3.5.4 在GDB下运行程序29
3.5.5 检查数据30
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 安装与配置Eclipse34
4.3.2 Eclipse界面35
4.3.3 编译与运行源代码35
4.3.4 Debug源代码36
4.4 小结37
第2篇 C/C++语言基础40
第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 迭代发布模型51
5.5.4 朴素软件工程思想51
5.6 小结53
第6章 数据类型、运算符和表达式54
6.1 C语言的数据类型54
6.1.1 基本类型的字长与范围54
6.1.2 聚合类型与修饰符55
6.2 常量与变量56
6.2.1 标识符命名56
6.2.2 常量56
6.2.3 变量57
6.3 整型数据57
6.3.1 整型常量58
6.3.2 整型变量58
6.4 浮点型数据59
6.4.1 浮点型常量59
6.4.2 浮点型变量59
6.5 字符型数据59
6.5.1 字符常量60
6.5.2 字符串常量60
6.5.3 转义字符60
6.5.4 符号常量61
6.5.5 字符变量61
6.6 运算符62
6.6.1 算术运算符62
6.6.2 自增和自减62
6.6.3 关系和逻辑运算符63
6.6.4 位操作符64
6.6.5 问号操作符64
6.6.6 逗号操作符65
6.6.7 优先级65
6.7 表达式65
6.7.1 表达式中的类型转换66
6.7.2 构成符cast66
6.7.3 空格与括号66
6.7.4 C语言中的简写形式67
6.8 C语言的预处理命令67
6.8.1 宏替换命令67
6.8.2 终止编译命令68
6.8.3 文件包含命令68
6.8.4 条件编译命令69
6.8.5 修改行号命令70
6.8.6 编译指示命令71
6.8.7 预定义的宏名71
6.8.8 注释72
6.9 小结72
第7章 程序控制结构73
7.1 程序的3种基本结构73
7.2 数据的输入与输出73
7.2.1 scanf()函数73
7.2.2 printf()函数75
7.2.3 getchar()函数与putchar()函数76
7.3 条件控制语句77
7.3.1 if语句77
7.3.2 switch语句78
7.4 循环控制语句79
7.4.1 while语句79
7.4.2 do-while语句80
7.4.3 for语句81
7.4.4 break与continue语句81
7.5 媒体播放器——建立程序结构82
7.5.1 编写伪代码83
7.5.2 建立媒体播放器的程序结构83
7.6 小结86
第8章 数组与指针87
8.1 一维数组87
8.1.1 一维数组的一般形式87
8.1.2 字符串使用的一维数组89
8.2 二维数组90
8.2.1 二维数组的一般形式90
8.2.2 二维字符串数组90
8.3 多维数组91
8.4 指针与指针变量92
8.5 指针变量的定义与引用93
8.5.1 指针变量的定义93
8.5.2 指针变量的引用94
8.6 指针与数组95
8.6.1 指针与一维数组95
8.6.2 指针与二维数组96
8.6.3 指针与字符串数组97
8.7 指针的地址分配97
8.8 指针数组98
8.9 指向指针的指针98
8.10 媒体播放器——建立播放列表99
8.10.1 建立一个播放列表99
8.10.2 对播放列表排序104
8.11 小结105
第9章 函数106
9.1 函数说明与返回值106
9.1.1 函数的类型说明106
9.1.2 返回语句107
9.2 函数的作用域规则108
9.2.1 局部变量108
9.2.2 全局变量109
9.2.3 动态存储变量110
9.2.4 静态存储变量111
9.3 函数的调用与参数111
9.3.1 形式参数与实际参数111
9.3.2 赋值调用与引用调用112
9.4 递归112
9.5 实现问题113
9.5.1 参数和通用函数114
9.5.2 效率114
9.6 函数库和文件114
9.6.1 程序文件的大小115
9.6.2 分类组织文件115
9.6.3 函数库116
9.7 main()函数的参数117
9.8 媒体播放器——建立核心控制模块118
9.8.1 通过函数传递参数118
9.8.2 建立媒体播放器核心控制模块121
9.9 小结125
第10章 字符及字符串处理126
10.1 字符编码126
10.1.1 ASCII编码126
10.1.2 Unicode编码127
10.2 字符处理库127
10.3 字符串转换函数128
10.4 字符串处理函数130
10.5 字符串比较函数131
10.6 字符串查找函数131
10.7 字符串内存函数133
10.8 字符串的其他函数134
10.9 媒体播放器——实现播放列表的检索功能135
10.9.1 对播放列表中的整个字符串进行排序135
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系统编程172
第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 文件流操作的错误处理194
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函数调用206
15.3 进程的特殊操作207
15.3.1 获得进程ID207
15.3.2 setuid和setgid系统调用208
15.3.3 setpgrp和setpgid系统调用208
15.3.4 chdir系统调用208
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网络编程与数据库开发236
第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协议与Internet240
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函数库简介256
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 即时通信软件的工作机制265
19.3.3 使用libpurple函数库接入服务器266
19.4 小结273
第20章 数据库274
20.1 数据的存储与访问274
20.1.1 使用数据文件274
20.1.2 使用数据库278
20.2 Berkeley DB数据包280
20.2.1 Berkeley DB数据包简介280
20.2.2 Berkeley DB数据包的连接和使用283
20.2.3 Berkeley DB数据包的访问288
20.2.4 Berkeley DB数据包中的游标290
20.3 PostgreSQL数据库服务器介绍293
20.3.1 PostgreSQL的基本概念293
20.3.2 数据库连接函数295
20.3.3 命令执行函数300
20.3.4 检索查询结果函数304
20.4 小结308
第21章 Linux系统中的常用数据库及接口309
21.1 SQLite数据库309
21.1.1 SQLite简介309
21.1.2 连接SQLite数据库311
21.1.3 SQLite命令执行函数314
21.1.4 SQLite检索查询结果函数316
21.2 MySQL数据库318
21.2.1 MySQL简介319
21.2.2 连接MySQL数据库321
21.2.3 查询MySQL数据库324
21.2.4 处理MySQL查询结果325
21.3 大型数据库与通用数据库接口327
21.3.1 连接Oracle数据库328
21.3.2 通用数据库接口330
21.4 媒体播放器——媒体库的数据库实现337
21.4.1 建立和连接数据库337
21.4.2 建立媒体库数据表338
21.4.3 管理媒体库数据表339
21.5 小结343
第5篇 Linux界面开发346
第22章 界面开发基础346
22.1 Linux常用桌面环境346
22.1.1 GNOME桌面环境346
22.1.2 KDE桌面环境348
22.1.3 移动设备与HILDON桌面环境349
22.2 GTK+图形环境介绍351
22.3 GLib库介绍352
22.3.1 基础类型352
22.3.2 对核心应用的支持353
22.3.3 实用功能354
22.3.4 数据类型355
22.4 GObject对象介绍356
22.4.1 对象系统357
22.4.2 GObject系统中的宏定义358
22.4.3 GTypeInfo结构360
22.4.4 信号机制361
22.5 2D图形引擎Cairo介绍361
22.6 多媒体库GStreamer介绍363
22.6.1 过滤器364
22.6.2 衬垫365
22.6.3 箱柜366
22.6.4 精灵衬垫367
22.7 搭建GTK+开发环境369
22.8 小结372
第23章 界面构件开发373
23.1 常用界面构件373
23.1.1 按钮构件373
23.1.2 调整对象375
23.1.3 范围构件376
23.1.4 标签构件377
23.1.5 箭头构件378
23.1.6 工具提示对象379
23.1.7 进度条379
23.1.8 对话框380
23.1.9 标尺381
23.1.10 状态栏382
23.1.11 文本输入构件383
23.1.12 微调按钮385
23.1.13 组合输入框388
23.1.14 日历390
23.1.15 颜色选择392
23.1.16 文件选择394
23.2 复合构件396
23.2.1 快捷标签396
23.2.2 绘图区399
23.2.3 字体选择对话框407
23.2.4 消息对话框410
23.2.5 图像构件412
23.2.6 文本视区416
23.3 菜单构件416
23.3.1 菜单栏417
23.3.2 菜单构件417
23.3.3 菜单项420
23.3.4 图形菜单项423
23.3.5 复选菜单项424
23.3.6 单选菜单项426
23.3.7 分隔菜单项427
23.4 RC文件427
23.4.1 使用RC文件428
23.4.2 RC文件格式429
23.5 小结432
第24章 界面布局433
24.1 界面布局的基本概念433
24.1.1 界面的宽度与高度433
24.1.2 窗体的基本组成435
24.1.3 布局约定437
24.2 组装盒构件439
24.2.1 组装盒的原理439
24.2.2 组装盒示范程序440
24.2.3 表组装的原理441
24.2.4 表组装示例443
24.3 容器445
24.3.1 事件盒445
24.3.2 对齐构件446
24.3.3 固定容器447
24.3.4 布局容器448
24.3.5 框架构件450
24.3.6 比例框架452
24.3.7 分栏窗体构件453
24.3.8 视角构件455
24.3.9 滚动条窗体455
24.3.10 按钮盒457
24.3.11 工具栏459
24.3.12 笔记本462
24.4 媒体播放器——实现界面466
24.4.1 使用原型法设计媒体播放器界面466
24.4.2 编写媒体播放器界面代码470
24.5 小结478
第25章 信号与事件处理479
25.1 信号函数与回调函数479
25.1.1 信号函数479
25.1.2 回调函数483
25.2 常用GTK+信号与事件485
25.2.1 GtkObject类信号485
25.2.2 GtkWidget界面构件信号486
25.2.3 GtkWindow窗体构件信号495
25.2.4 GtkContainer容器构件信号496
25.2.5 GtkCalendar日历构件信号496
25.2.6 GtkTextView文本视区构件信号497
25.3 小结498
第26章 Glade设计程序界面499
26.1 Glade简介499
26.2 构造图形界面500
26.2.1 添加窗体500
26.2.2 添加容器507
26.2.3 添加构件514
26.2.4 设置构件属性517
26.2.5 添加事件和回调518
26.3 C语言代码联编520
26.3.1 GTK+库使用Glade项目文件520
26.3.2 使用GTK+多语言支持522
26.4 小结526
第6篇 Linux C编程项目实战528
第27章 编程项目实战——媒体播放器528
27.1 软件工程实战528
27.1.1 项目需求分析528
27.1.2 软件需求说明529
27.1.3 项目视图的解决方案530
27.2 软件设计531
27.2.1 需求分析531
27.2.2 制订开发计划532
27.2.3 分工协作533
27.3 版本控制534
27.3.1 CVS服务器配置534
27.3.2 CVS服务器管理535
27.4 在Eclipse中使用CVS客户端538
27.4.1 从CVS服务器签出模块并创建项目539
27.4.2 签入文件542
27.4.3 使用Eclipse项目创建CVS模块543
27.4.4 比较文件544
27.4.5 管理CVS服务器545
27.4.6 断开项目与CVS服务器之间的关联545
27.5 音量控制对话框546
27.5.1 创建对话框546
27.5.2 添加垂直比例尺547
27.5.3 测试548
27.6 播放列表对话框549
27.6.1 创建对话框549
27.6.2 创建工具条和工具条按钮550
27.6.3 创建树视图552
27.6.4 创建对话框按钮552
27.6.5 测试553
27.7 媒体库对话框554
27.7.1 创建对话框554
27.7.2 创建工具条和工具条按钮555
27.7.3 创建分类部件和媒体信息显示部件556
27.7.4 创建搜索部件558
27.7.5 创建对话框按钮559
27.7.6 测试559
27.8 播放控制模块实现562
27.8.1 播放控制模块程序结构562
27.8.2 MP3播放功能的实现563
27.8.3 播放中的回调处理566
27.9 系统集成568
27.10 主程序文件的实现569
27.10.1 头文件和主函数入口569
27.10.2 媒体库模块初始化570
27.10.3 图形界面初始化570
27.10.4 退出前清理571
27.10.5 编译和运行571
27.11 媒体库功能的集成571
27.11.1 初始化572
27.11.2 显示媒体库对话框572
27.11.3 添加文件579
27.11.4 添加目录581
27.11.5 删除文件信息582
27.11.6 删除所有文件信息584
27.11.7 搜索本地文件585
27.11.8 传递到播放列表586
27.11.9 查找587
27.12 播放列表功能的集成589
27.12.1 初始化589
27.12.2 显示播放列表对话框589
27.12.3 添加文件592
27.12.4 添加目录593
27.12.5 打开文件594
27.12.6 保存文件596
27.12.7 删除文件597
27.12.8 删除全部598
27.12.9 排序599
27.13 播放控制模块的集成600
27.13.1 播放模式设置600
27.13.2 开始播放600
27.13.3 暂停播放601
27.13.4 停止播放602
27.13.5 播放上一首602
27.13.6 播放下一首603
27.14 小结603
热门推荐
- 1280411.html
- 778831.html
- 2996366.html
- 1925494.html
- 3027173.html
- 3268639.html
- 1201197.html
- 2450093.html
- 2808275.html
- 205513.html
- http://www.ickdjs.cc/book_103477.html
- http://www.ickdjs.cc/book_2237188.html
- http://www.ickdjs.cc/book_3456591.html
- http://www.ickdjs.cc/book_425076.html
- http://www.ickdjs.cc/book_1091309.html
- http://www.ickdjs.cc/book_1815086.html
- http://www.ickdjs.cc/book_37090.html
- http://www.ickdjs.cc/book_1478946.html
- http://www.ickdjs.cc/book_3887222.html
- http://www.ickdjs.cc/book_2471697.html