描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302498803丛书名: 软件开发视频大讲堂
“软件开发视频大讲堂”丛书是清华社计算机专业基础类零售图书*畅销的品牌之一。
丛书累计销售180多万册,深受广大开发者喜爱。
4本荣获“全行业优畅销书”奖,1本荣获清华社“专业畅销书”一等奖。
绝大多数品种在“全国计算机零售图书排行榜”同品种排行中名列前茅。
实用、易懂、资源丰富,被 数百所高校选为专业课教材。
本书推荐:
1. 循序渐进,实战讲述:基础知识→核心技术→高级应用→项目实战,符合认知规律。
2. 71个精彩案例 83集高清微视频 1个项目案例,边学边练,在实践中提升技能。
3. 超值赠送140小时Visual C 在线课程,6大类库资源,助力你夯实基础,精准,有效,速练,练就转岗就业不败之力。
(1)实例资源库 源码资源库:1200个实例及源码详细分析,多练实例,多读源码,是快速学习之道。
(2)模块资源库:15个经典模块开发过程完整展现,拿来改改就能用。
(3)项目资源库:15个企业项目开发过程的完整展现,帮助你反复练习,触类旁通。
(4)面试资源库:371个企业面试真题及面试技巧,帮你进行职业规划,转岗就业不用愁。
(5)测试题库系统:616道能力测试题目,由易及难,快速判断自己的真实水平,熟能生巧。
《Linux C从入门到精通(第2版)》从初学者的角度出发,通过通俗易懂的语言,丰富多彩的实例,详细介绍了在Linux系统下使用C 语言进行应用程序开发应该掌握的各方面技术。全书共20章,包括Linux系统概述、C语言基础、内存管理、基本编辑器VIM和Emacs、GCC编译器、GDB调试工具、进程控制、进程间通信、文件操作、文件的输入/输出操作、信号及信号处理、网络编程、make编译基础、Linux系统下的C 语言与数据库、集成开发环境、界面开发基础、界面布局、界面构件开发、Glade设计程序界面、MP3 音乐播放器。
目 录
第1 篇 基 础 知 识
第1 章 Linux 系统概述 2
视频讲解:12 分钟
1.1 Linux 的起源与发展 3
1.1.1 GNU 项目的前前后后 3
1.1.2 Linux 的诞生 . 3
1.1.3 Linux 的现状 . 4
1.2 Linux 的内核与版本 4
1.2.1 Linux 内核的介绍 . 4
1.2.2 Linux 对硬件平台的支持 . 5
1.2.3 常见Linux 的发行版本 5
1.3 Linux 系统的安装 5
1.3.1 Linux 系统安装的硬件要求 . 6
1.3.2 图形化安装Linux . 6
1.3.3 次启动Linux 系统 11
1.4 小结 13
第2 章 C 语言基础 14
视频讲解:35 分钟
2.1 C 语言概述 . 15
2.2 数据类型 15
2.2.1 基本类型 16
2.2.2 构造类型 18
2.2.3 指针类型 20
2.2.4 空类型 21
2.3 运算符和表达式 21
2.3.1 运算符 21
2.3.2 表达式 23
2.4 函数 23
2.5 程序语句 25
2.5.1 控制语句 26
2.5.2 函数调用语句 26
2.5.3 表达式语句 27
2.5.4 空语句 27
2.5.5 复合语句 27
2.6 预处理命令 27
2.6.1 宏定义 28
2.6.2 文件包含 29
2.7 小结 29
2.8 实践与练习 29
第3 章 内存管理 30
视频讲解:15 分钟
3.1 内存分类 31
3.1.1 动态内存 31
3.1.2 静态内存 31
3.1.3 动态内存与静态内存的区别 32
3.2 内存管理的基本操作 32
3.2.1 分配内存 32
3.2.2 释放内存 35
3.3 链表 35
3.4 小结 37
3.5 实践与练习 37
第4 章 基本编辑器VIM 和Emacs . 38
视频讲解:12 分钟
4.1 初识VIM . 39
4.1.1 VIM 的进入与退出 . 39
4.1.2 VIM 基本模式 . 39
4.2 VIM 的基本操作 . 40
4.2.1 VIM 的命令行模式操作 . 40
4.2.2 VIM 的编辑模式操作 . 42
4.2.3 VIM 的底行模式操作 . 42
4.3 初识Emacs . 43
4.4 Emacs 的基本操作 . 43
4.4.1 启动Emacs 43
4.4.2 基本操作 44
4.5 小结 46
第5 章 GCC 编译器 47
视频讲解:27 分钟
5.1 初识GCC 编译器 48
5.1.1 次编译 48
5.1.2 GCC 选项概述 48
5.1.3 警告 . 49
5.1.4 GCC 调试 50
5.1.5 代码优化 52
5.2 GCC 编译的基本流程 . 53
5.2.1 C 预处理 54
5.2.2 编译 . 54
5.2.3 汇编 . 54
5.2.4 链接 54
5.3 其他编译工具简介 54
5.3.1 C 编译器G . 55
5.3.2 EGCS 55
5.3.3 F2C 和P2C 55
5.4 小结 55
第6 章 GDB 调试工具 . 56
视频讲解:31 分钟
6.1 初识GDB 调试器 57
6.1.1 GDB 调试器概述 . 57
6.1.2 用GDB 调试简单程序 58
6.2 GDB 调试器的基本功能与常用命令 . 59
6.2.1 启动调试程序功能及其命令 60
6.2.2 使用断点功能及其命令 61
6.2.3 检查数据的功能及其命令 63
6.2.4 使用观察窗口功能及其命令 66
6.2.5 检查栈信息功能及其命令 66
6.2.6 检查源代码功能及其命令 67
6.2.7 改变程序的运行功能及其命令 69
6.3 多线程程序调试 70
6.4 Linux 平台上的其他调试工具 71
6.5 小结 71
第2 篇 核 心 技 术
第7 章 进程控制 74
视频讲解:57 分钟
7.1 进程概述 75
7.1.1 进程的定义 75
7.1.2 进程的相关信息 76
7.2 进程的基本操作 77
7.2.1 进程创建 77
7.2.2 进程等待 83
7.2.3 进程结束 87
7.3 多个进程间的关系 89
7.3.1 进程组 89
7.3.2 时间片的分配 90
7.4 线程 91
7.4.1 线程概述 92
7.4.2 线程的属性 92
7.5 进程的特殊操作 94
7.5.1 获取进程标识 94
7.5.2 设置进程标识 98
7.6 小结 99
7.7 实践与练习 99
第8 章 进程间通信 100
视频讲解:41 分钟
8.1 进程间通信概述 101
8.1.1 进程间通信的工作原理 .101
8.1.2 进程间通信的主要分类 .101
8.2 管道与命名管道 101
8.2.1 管道基本定义 .102
8.2.2 管道创建和管道关闭 .102
8.2.3 pipe()函数实现管道通信 .102
8.2.4 命名管道基本定义 .105
8.2.5 在Shell 中创建命名管道 .105
8.2.6 mkfifo()函数创建命名管道 .106
8.3 共享内存 108
8.3.1 SYSV 子系统的基本知识 108
8.3.2 共享内存相关操作 .109
8.3.3 共享内存实现进程间通信 .112
8.4 信号量 114
8.4.1 信号量的工作原理 .114
8.4.2 信号量的相关操作 .115
8.4.3 信号量实现进程间通信 .117
8.5 消息队列 119
8.5.1 消息队列的相关操作 .120
8.5.2 消息队列实现进程间通信 .122
8.6 小结 124
8.7 实践与练习 124
第9 章 文件操作 125
视频讲解:37 分钟
9.1 文件初探 126
9.1.1 文件与文件系统的概念 .126
9.1.2 文件的属性 .126
9.1.3 文件的相关信息 .127
9.2 文件的相关操作 128
9.2.1 修改文件属性 .129
9.2.2 复制文件描述符 .132
9.2.3 获取文件信息 .133
9.2.4 文件的其他操作 .134
9.3 特殊文件的操作 135
9.3.1 目录文件的操作 .135
9.3.2 链接文件的操作 .139
9.3.3 设备文件 142
9.4 小结 142
9.5 实践与练习 143
第10 章 文件的输入/输出操作 . 144
视频讲解:30 分钟
10.1 文件I/O 操作概述 . 145
10.1.1 文件描述符简介 145
10.1.2 数据流概述 145
10.2 基于文件描述符的I/O 操作 . 146
10.2.1 文件的打开与关闭 146
10.2.2 文件的读写操作 148
10.2.3 文件的定位 149
10.3 基于数据流的I/O 操作 . 152
10.3.1 文件的打开与关闭 152
10.3.2 字符输入/输出 . 153
10.3.3 字符串输入/输出 . 156
10.3.4 数据块输入/输出 . 157
10.3.5 格式化输入/输出 . 157
10.3.6 操作读写位置的函数 159
10.3.7 C 标准库的I/O 缓冲区 . 161
10.4 小结 163
10.5 实践与练习 163
第11 章 信号及信号处理 . 164
视频讲解:23 分钟
11.1 信号概述 165
11.1.1 在终端中查看常见的信号 165
11.1.2 信号处理 165
11.2 产生信号 166
11.2.1 kill()函数 166
11.2.2 raise()函数 167
11.2.3 alarm()函数 167
11.3 捕捉信号 167
11.3.1 signal()函数 168
11.3.2 sigaction()函数 . 170
11.4 信号的阻塞 171
11.4.1 sigprocmask()函数 . 172
11.4.2 sigsuspend()函数 172
11.4.3 sigpending()函数.172
11.5 信号处理的安全问题 174
11.6 小结 175
11.7 实践与练习 175
第12 章 网络编程 176
视频讲解:30 分钟
12.1 网络编程的基本原理 177
12.1.1 计算机网络 .177
12.1.2 TCP/IP 协议 178
12.1.3 IP 地址简介 178
12.1.4 套接字编程原理 .181
12.2 TCP 套接字编程 186
12.3 UDP 套接字编程 . 189
12.3.1 数据传输系统调用 .190
12.3.2 基于UDP 协议的C/S 机制的网络通信的工
作原理 .191
12.3.3 基于UDP 的简单网络通信实例 .191
12.4 原始套接字编程 194
12.4.1 原始套接字定义 .195
12.4.2 原始套接字系统调用 .195
12.4.3 原始套接字的发送与接收 .196
12.4.4 报文处理 .196
12.5 小结 199
12.6 实践与练习 199
第13 章 make 编译基础 200
视频讲解:1 小时54 分钟
13.1 通过实例认识make . 201
13.1.1 Makefile 的导入 .201
13.1.2 make 是如何工作的 .205
13.1.3 Makefile 中使用变量 .206
13.1.4 让make 自动推导 207
13.1.5 清空目标文件的规则 .208
13.2 make 概述 . 208
13.2.1 Makefile 中有什么 .208
13.2.2 Makefile 的文件名 .209
13.2.3 包含其他Makefile 文件 209
13.2.4 变量MAKEFILES .211
13.2.5 变量MAKEFILE_LIST . 211
13.2.6 其他特殊变量 212
13.2.7 Makefile 文件的重建 . 212
13.2.8 重载另外一个Makefile . 213
13.2.9 make 如何解析Makefile 文件 214
13.2.10 总结 215
13.3 Makefile 基本规则 . 215
13.3.1 规则举例 216
13.3.2 规则语法 216
13.3.3 依赖的类型 217
13.3.4 文件名使用通配符 218
13.3.5 目录搜寻 220
13.3.6 Makefile 伪目标 . 225
13.3.7 强制目标(没有命令或依赖的规则) . 227
13.3.8 空目标文件 228
13.3.9 Makefile 的特殊目标 . 228
13.3.10 多目标 230
13.3.11 多规则目标 231
13.3.12 静态模式 231
13.3.13 双冒号规则 234
13.3.14 自动产生依赖 234
13.3.15 书写命令 236
13.4 变量的基本操作 241
13.4.1 变量的基础 241
13.4.2 变量中的变量 242
13.4.3 变量高级用法 244
13.4.4 追加变量值 246
13.4.5 override 指示符 246
13.4.6 多行变量 247
13.4.7 环境变量 247
13.4.8 目标变量 247
13.4.9 模式变量 248
13.5 条件判断 248
13.5.1 示例 249
13.5.2 语法 249
13.6 基本函数的使用 251
13.6.1 函数的调用语法 251
13.6.2 字符串处理函数 252
13.6.3 文件名操作函数 .255
13.6.4 foreach()函数 257
13.6.5 if()函数 .258
13.6.6 call()函数 258
13.6.7 origin()函数 259
13.6.8 shell()函数 260
13.6.9 控制make 的函数 260
13.7 make 的运行 . 261
13.7.1 make 的退出码 .261
13.7.2 指定Makefile .261
13.7.3 指定目标 .261
13.7.4 检查规则 .263
13.7.5 make 的参数 .263
13.8 隐含规则 265
13.8.1 使用隐含规则 .266
13.8.2 隐含规则一览 .267
13.8.3 隐含规则使用的变量 .268
13.8.4 隐含规则链 .269
13.8.5 模式规则 .270
13.8.6 后缀规则 .273
13.8.7 隐含规则搜索算法 .274
13.9 make 工具与函数库 . 275
13.9.1 函数库文件的成员 .275
13.9.2 函数库成员的隐含规则 .276
13.9.3 函数库文件的后缀规则 .276
13.9.4 注意事项 .276
13.10 小结 277
13.11 实践与练习 277
第14 章 Linux 系统下的C 语言与数据库 278
视频讲解:13 分钟
14.1 MySQL 数据库简介 279
14.2 安装和连接MySQL 数据库 . 279
14.2.1 安装MySQL 数据库 . 279
14.2.2 启动和关闭MySQL 280
14.3 连接操作MySQL 282
14.3.1 MySQL 常用数据库操作函数 282
14.3.2 连接MySQL 数据 . 284
14.3.3 查询表记录 285
14.3.4 插入表记录 286
14.3.5 修改表记录 287
14.3.6 删除表记录 287
14.4 Oracle 数据库简介 . 288
14.5 Oracle 数据库的安装 . 289
14.5.1 软硬件要求 289
14.5.2 安装Oracle 11g 数据库 . 292
14.5.3 创建监听和数据库 293
14.6 连接Oracle 数据库 297
14.7 小结 299
14.8 实践与练习 299
第15 章 集成开发环境 . 300
视频讲解:13 分钟
15.1 Eclipse 与CDT 简介 . 301
15.2 安装和配置Eclipse . 302
15.2.1 安装Eclipse . 302
15.2.2 配置Eclipse 的CDT . 304
15.3 使用Eclipse 开发C 代码 305
15.3.1 编写运行Hello World . 305
15.3.2 CDT 的相关功能 . 307
15.3.3 调试C/C 的项目 307
15.4 小结 308
第3 篇 高 级 应 用
第16 章 界面开发基础 310
视频讲解:23 分钟
16.1 Linux 常用桌面环境 311
16.1.1 面板介绍 311
16.1.2 桌面图标介绍 312
16.1.3 桌面背景 313
16.2 glib 库介绍 . 314
16.2.1 类型定义 .314
16.2.2 glib 的宏 .314
16.2.3 内存管理 .315
16.2.4 字符串处理 .316
16.2.5 数据结构 .318
16.3 GObject 对象介绍 321
16.4 图形引擎Cairo 介绍 . 322
16.5 多媒体库介绍 323
16.5.1 元件和插件 .323
16.5.2 衬垫 324
16.5.3 数据、缓冲区和事件 .324
16.5.4 缓冲区的分配 .325
16.5.5 MIME 类型和属性 .325
16.6 小结 326
16.7 实践与练习 326
第17 章 界面布局 327
视频讲解:34 分钟
17.1 窗体 328
17.1.1 初始化 .328
17.1.2 建立窗口 .328
17.1.3 结束应用程序 .330
17.1.4 回调函数 .330
17.1.5 其他窗体函数 .332
17.2 组装盒构件 333
17.2.1 组装盒的原理 .334
17.2.2 盒的细节 .334
17.2.3 组装盒程序 .335
17.2.4 用表组装 .339
17.2.5 表组装程序 .341
17.3 容器 343
17.3.1 事件盒 .343
17.3.2 对齐构件 .343
17.3.3 固定容器 .344
17.3.4 布局容器 .345
17.3.5 框架 346
17.3.6 分栏窗口构件 .348
17.3.7 视角 349
17.3.8 滚动窗口 349
17.3.9 按钮盒 351
17.3.10 工具栏 353
17.3.11 笔记本 358
17.4 小结 362
17.5 实践与练习 362
第18 章 界面构件开发 . 363
视频讲解:1 小时3 分钟
18.1 基本界面构件 364
18.1.1 按钮构件 364
18.1.2 调整对象 368
18.1.3 范围构件 370
18.1.4 标签 377
18.1.5 箭头 380
18.1.6 工具提示对象 382
18.1.7 进度条 382
18.1.8 对话框 386
18.1.9 标尺 387
18.2 杂项构件 390
18.2.1 状态栏 390
18.2.2 文本输入构件 392
18.2.3 微调按钮 394
18.2.4 组合框 400
18.2.5 日历 402
18.2.6 颜色选择 409
18.2.7 文件选择 410
18.3 RC 文件 411
18.4 小结 412
18.5 实践与练习 412
第19 章 Glade 设计程序界面 413
视频讲解:23 分钟
19.1 Glade 简介 414
19.2 构造图形界面 415
19.2.1 添加窗体 415
19.2.2 添加容器 421
19.2.3 添加构件 426
19.2.4 设置构件属性 430
19.2.5 添加事件和回调 .431
19.3 C 语言代码联编 . 432
19.3.1 GtkBuilder 代码连接基础 433
19.3.2 GtkBuilder 代码连接实例 . 435
19.4 小结 437
19.5 实践与练习 437
第4 篇 项 目 实 战
第20 章 MP3 音乐播放器 440
视频讲解:27 分钟
20.1 GStreamer 简介 441
20.2 界面设计 442
20.3 代码设计 444
20.3.1 建立工程文件 .444
20.3.2 主程序设计 .445
20.3.3 生成playbin 对象 .446
20.3.4 打开文件 450
20.3.5 播放MP3 . 451
20.3.6 暂停播放 452
20.3.7 停止播放 452
20.3.8 界面更新 453
20.3.9 播放控制 454
20.4 小结 456
前 言
丛书说明:“软件开发视频大讲堂”丛书(第1版)于2008年8月出版,因其编写细腻,易学实用,配备全程视频等特色,在软件开发类图书市场上产生了很大反响,绝大部分品种在全国软件开发零售图书排行榜中名列前茅,2009年多个品种被评为“全国优秀畅销书”。
“软件开发视频大讲堂”丛书(第2版)于2010年8月出版,出版后,绝大部分品种在全国软件开发类零售图书排行榜中依然名列前茅。丛书中多个品种被百余所高校计算机相关专业、软件学院选为教学参考书,在众多的软件开发类图书中成为耀眼的品牌之一。丛书累计销售40多万册。
“软件开发视频大讲堂”丛书(第3版)于2012年8月出版,根据读者需要,增删了品种,重新录制了视频,提供了从“入门学习→实例应用→模块开发→项目开发→能力测试→面试”等各个阶段的海量开发资源库。因丛书编写结构合理、实例选择经典实用,丛书迄今累计销售90多万册。
“软件开发视频大讲堂”丛书(第4版)在继承前3版所有优点的基础上,修正了前3版图书中发现的疏漏之处,并结合目前市场需要,进一步对丛书品种进行了完善,对相关内容进行了更新优化,使之更适合读者学习,为了方便教学,还提供了教学课件PPT。
Linux系统是一种类UNIX完整的操作系统。它不仅功能强大、运行稳定,而且用户可免费使用、分析其源代码。而C语言是一种计算机程序设计语言,它既有高级语言的特性,又具有汇编语言的特性,可以编写系统应用程序。而整个Linux系统就是由C语言编写的,因此在Linux系统下学习C语言,更接近C语言的本质,体会更为深刻。
本书内容
本书提供了从入门到编程高手所的各类知识,共分4篇,大体结构如下图所示。
第1篇:基础知识。本篇通过介绍Linux系统概述、C语言基础、内存管理、基本编辑器VIM和Emacs、GCC编译器、GDB调试工具等内容,并结合书中丰富的图示、实例、经典的范例、录像等帮助读者快速掌握C语言,并为学习以后的知识奠定坚实的基础。
第2篇:核心技术。本篇主要介绍了进程控制、进程间通信、文件操作、文件的输入/输出操作、信号及信号处理、网络编程、make编译基础、Linux系统下的C语言与数据库、集成开发环境等内容,通过这一部分的学习,可以帮助读者在Linux系统下学习C语言得到进一步的提升,体会到C语言编程的本质所在。书中结合丰富的图示、实例、经典的范例和录像等,帮助读者更轻松地掌握Linux系
统下C语言编程的核心技术。
第3篇:高级应用。本篇主要介绍了界面开发基础、界面布局、界面构件开发、Glade设计程序界面等Linux系统下的图像界面编程的高级应用,通过这一部分的学习,读者能够进一步了解Linux系统中图形界面的丰富应用。
第4篇:项目实战。本篇通过开发一个大型、完整的MP3音乐播放器,运用软件工程的设计思想,让读者学习如何进行软件项目的实践开发。书中按照编写背景→需求分析→主窗口设计→建立子构件→各功能函数的实现过程进行介绍,带领读者一步一步亲身体验开发项目的全过程。
本书特点
?由浅入深,循序渐进:本书以初、中级程序员为对象,先从C语言基础学起,再学习C语言的核心技术,然后学习C语言的高级应用,后学习开发一个完整项目。结合Linux原理讲解C语言开发,为Linux环境下的C语言开发提供从入门到精通的捷径。本书讲解过程中步骤详尽、版式新颖,在操作的内容图片上以编号 内容的方式进行标注,让读者在阅读中一目了然,从而快速把握书中内容。
?语音视频,讲解详尽:对于初学者来说,视频讲解是好的导师,它能够引导初学者快速入门,使初学者感受到编程的快乐和成就感,进一步增强学习的信心。鉴于此,本书为大部分章节都配备了视频讲解,使用手机扫描正文小节标题一侧的二维码,即可在线学习程序开发的全过程。
?实例典型,轻松易学:通过例子学习是好的学习方式,本书通过一个知识点、一个例子、一个结果、一段评析、一个综合应用的模式,透彻详尽地讲述了实际开发中所需的各类知识。
书中还增加了很多接近生活、易于理解的经典范例,使读者能够从枯燥的编程中找到在生活中的趣味应用。
?精彩栏目,贴心提醒:本书根据需要在各章使用了很多“注意”“说明”等小栏目,让读者可以在学习过程中更轻松地理解相关知识点及概念,并轻松地掌握个别技术的应用技巧。
?应用实践,随时练习:书中几乎每章都提供了“实践与练习”,让读者能够通过对问题的解答重新回顾、熟悉所学的知识,举一反三,为进一步学习做好充分的准备。
读者对象
?初学编程的自学者?编程爱好者
?大中专院校的老师和学生?相关培训机构的老师和学员
?做毕业设计的学生?初、中级程序开发人员
?程序测试及维护人员?参加实习的“菜鸟”程序员
致读者
本书由明日科技C程序开发团队组织编写,主要编写人员有李菁菁、王小科、王国辉、赛奎春、张鑫、杨丽、高春艳、辛洪郁、周佳星、申小琦、冯春龙、白宏健、何平、张宝华、张云凯、庞凤、申野、宋万勇、贾景波、赵宁、李磊、王赫男、葛忠月、刘杰、张渤洋、乔宇、卞昉、汪倩、谭畅、刘媛媛、梁英、隋妍妍、李雪、李颖、钟成浩、朱艳红、孙勃、潘建羽、岳彩龙、李春林、林驰、白兆松、依莹莹、王欢、胡冬、宋禹蒙等。在编写本书的过程中,我们以科学、严谨的态度,力求精益求精,但错误、疏漏之处在所难免,敬请广大读者批评指正。
感谢您购买本书,希望本书能成为您编程路上的领航者。
“零门槛”编程,一切皆有可能。祝读书快乐!
编 者
评论
还没有评论。