批量上传,套装书可能不全,下单前咨询在线客服!有特殊要求,下单前请咨询客服!
¥ 67.47 4.9折 ¥ 139 全新
库存182件
作者徐诚
出版社清华大学出版社
ISBN9787302654797
出版时间2024-03
装帧平装
开本16开
定价139元
货号29725693
上书时间2024-11-04
Linux系统基于开源软件的思想产生,它促进了开源软件技术的发展,这种先进的软件设计思想引领全球软件业的变革,为软件技术的发展带来了强劲的动力。随着Linux系统的发展和广泛应用,如今它已经支持绝大多数嵌入式应用,并在服务器市场上占据很大的份额,其桌面系统的普及率逐年上升。越来越多的开发者希望了解Linux系统开发,特别是基于Linux系统的C程序设计。
笔者长期从事技术研究,曾经在CSDN等社区发表了多篇相关技术文章。但笔者觉得不成体系的文章对读者的帮助不大,于是萌生写作的想法,希望能将自己的经验分享给更多的读者。
本书是获得大量读者好评的“Linux典藏大系”中的《Linux环境C程序设计》(第3版)。本书全面介绍Linux环境下的程序开发,内容由浅入深,适合不同层次的读者阅读。在《Linux环境C程序设计(第3版)》中,笔者不但会介绍Linux环境C程序设计的各个知识要点,而且还会介绍Linux所依存的开源软件思想,并将其与当前流行的软件工程思想相结合,贯穿于典型项目案例的开发过程中,让读者不但能掌握开发技术,而且还能获得与国际一流软件工程师一样的开发水平。
关于“Linux典藏大系”
“Linux典藏大系”是专门为Linux技术爱好者推出的系列图书,涵盖Linux技术的方方面面,可以满足不同层次和各个领域的读者学习Linux的需求。该系列图书自2010年1月陆续出版,上市后深受广大读者的好评。2014年1月,创作者对该系列图书进行了全面改版并增加了新品种。新版图书一上市就大受欢迎,各分册长期位居Linux图书销售排行榜前列。截至2023年6月底,该系列图书累计印数超过30万册。可以说,“Linux典藏大系”是Linux图书市场上的明星品牌,该系列中的一些图书多次被评为清华大学出版社“年度畅销书”,还曾获得“51CTO读书频道”颁发的“最受读者喜爱的原创IT技术图书奖”,另有部分图书的中文繁体版在中国台湾出版发行。该系列图书的出版得到了国内Linux知名技术社区ChinaUnix(简称CU)的大力支持和帮助,读者与CU社区中的Linux技术爱好者进行了广泛的交流,取得了良好的学习效果。另外,该系列图书还被国内上百所高校和培训机构选为教材,得到了广大师生的一致好评。
关于第3版
随着技术的发展,本书第2版与当前Linux的几个流行版本有所脱节,这给读者的学习带来了不便。应广大读者的要求,笔者结合Linux技术的新近发展对第2版图书进行全面的升级改版,推出第3版。相比第2版图书,第3版在内容上的变化主要体现在以下几个方面:
* Linux系统由Fedora更换为Ubuntu 22.04;
* Eclipse更新为2022-02版;
* 版本控制工具由CVS更新为普遍流行的Git;
* 修订了第2版中的一些疏漏,并对一些不准确的内容重新表述;
* 新增思维导图(提供电子版高清大图)和课后习题,以方便读者学习。
《Linux环境C程序设计(第3版)》特色
1.配多媒体教学视频,学习效果好
《Linux环境C程序设计(第3版)》重点内容提供大量的配套多媒体教学视频,可以帮助读者更加轻松、直观、高效地学习,取得更好的学习效果。
2.内容全面、系统、深入
《Linux环境C程序设计(第3版)》详细介绍Linux系统安装、Linux环境C开发基础知识、界面开发、数据库开发、网络编程、系统功能编程和多媒体开发等内容,并通过开发媒体播放器的各个模块,让读者深入理解一个完整项目的开发流程。
3.讲解由浅入深,循序渐进,适合各个层次的读者阅读
《Linux环境C程序设计(第3版)》从Linux环境C程序设计基础知识开始讲解,逐步深入高级开发技术与应用,章节安排从易到难,讲解由浅入深,循序渐进,适合各个层次的读者阅读,并均有所获。
4.技术全面,剖析思想根源
抛开开源思想研究Linux开发是徒劳的,开发者只能掌握表面的开发技术,而不能获得提高软件开发效率与项目成功率的科学方法。笔者结合开源库和项目案例,将Linux系统开发、C/C 开发和软件工程思想融会贯通,深入剖析Linux环境C程序设计。
5.深入剖析典型案例
《Linux环境C程序设计(第3版)》选择一些有一定难度的软件项目案例进行讲解,这些案例涵盖当前流行的开发技术,可以帮助读者实践先进的软件设计思想,并掌握实用的一线开发技术,从而提升职场竞争力。
6.提供习题、源代码、思维导图和教学PPT
《Linux环境C程序设计(第3版)》特意在每章后提供多道习题,帮助读者巩固和自测该章的重要知识点,并提供源代码、思维导图和教学PPT等配套资源,以方便读者学习和教师教学。
《Linux环境C程序设计(第3版)》内容
第1篇 Linux基础知识
本篇涵盖第1~4章,主要介绍Linux的历史、内核与版本,以及Linux系统安装、Linux基本操作、GCC/G 编译器、GDB调试器与Linux C开发环境搭建等。通过学习本篇内容,读者可以系统掌握Linux的基础知识,以及搭建Linux开发环境的能力。
第2篇 C/C 语言基础知识
本篇涵盖第5~12章,主要介绍C语言编程基础、数据类型、运算符、表达式、程序控制结构、数组、指针、函数、字符、字符串、结构体、共用体,以及C 语言面向对象程序设计思想和一些新特性等。通过学习本篇内容,读者可以掌握C语言的基础知识,并对C 语言的面向对象特性有所理解。
第3篇 Linux系统编程
本篇涵盖第13~17章,主要介绍文件操作、文件I/O操作、进程控制、进程间的通信和线程控制等。通过学习本篇内容,读者可以掌握Linux环境C程序设计中有关系统功能编程的核心技术与应用。
第4篇 Linux网络编程与数据库开发
本篇涵盖第18~21章,主要介绍网络编程基础、网络编程函数库、数据库开发、Linux系统常用数据库与接口。通过学习本篇内容,读者可以掌握Linux环境C程序设计中的数据库和网络编程技术与应用。
第5篇 Linux界面开发
本篇涵盖第22~26章,主要介绍界面开发基础知识、界面构件开发、界面布局、信号与事件处理、Glacle程序界面设计。通过学习本篇内容,读者可以独立完成一些简单的界面设计,并掌握如何与C语言进行连接。
第6篇 Linux环境C编程项目实战
本篇涵盖第27章,主要介绍一个媒体播放器的开发过程,以便读者对Linux环境下的项目开发有一个全面的认识,从而提高实际项目开发水平。通过学习本篇内容,读者可以具备基本的Linux环境下软件项目开发的能力。
读者对象
* Linux环境C程序设计初学者;
* 全面学习Linux环境C编程的人员;
* Linux环境C程序设计从业人员;
* Linux环境C程序设计爱好者;
* 需要一本案头手册的程序员;
* 高等院校的学生与培训机构的学员。
配书资源获取方式
《Linux环境C程序设计(第3版)》涉及的配套资源如下:
* 配套教学视频;
* 程序源代码文件;
* 高清思维导图;
* 习题参考答案;
* 配套教学PPT;
* 书中涉及的开发工具。
上述配套资源有以下3种获取方式:
* 关注微信公众号“方大卓越”,然后回复数字“4”,即可自动获取下载链接;
* 在清华大学出版社网站上搜索到本书,然后在本书页面上找到“资源下载”栏目,单击“网络资源”按钮进行下载;
* 在本书技术论坛上的Linux模块进行下载。
技术支持
虽然笔者对书中所述内容都尽量予以核实,并多次进行文字校对,但因时间所限,可能还存在疏漏和不足之处,恳请读者批评与指正。
读者在阅读本书时若有疑问,可以通过以下方式获得帮助:
* 加入本书QQ交流群进行提问;
* 在本书技术论坛上留言,会有专人负责答疑;
* 发送电子邮件获得帮助。
编者
2024年2月
本书是获得大量读者好评的“Linux典藏大系”中的《Linux环境C程序设计》(第3版),内容丰富,从基础知识到高级技术和核心原理,再到项目开发,几乎涵盖Linux环境C程序设计的所有重要知识点。《Linux环境C程序设计(第3版)》提供大量实例,供读者实战演练,并提供教学视频、源程序、思维导图、习题参考答案和教学PPT等超值配套资源,帮助读者高效、直观地学习。
《Linux环境C程序设计(第3版)》共27章,分为6篇。第1篇“Linux基础知识”主要介绍Linux系统概述、Linux基本操作、GCC/G 编译器、GDB调试器、开发环境搭建等;第2篇“C/C 语言基础知识”主要介绍C语言编程基础、数据类型、运算符、表达式、程序控制结构、数组与指针、函数、字符与字符串处理、结构体与共用体、C 语言编程基础等;第3篇“Linux系统编程”主要介绍文件操作、文件I/O操作、进程控制、进程间的通信与线程控制等;第4篇“Linux网络编程与数据库开发”主要介绍网络编程基础、网络编程函数库、数据库开发、Linux系统常用数据库与接口等;第5篇“Linux界面开发”主要介绍界面开发基础知识、界面构件开发、界面布局、信号与事件处理、Glade程序界面设计等;第6篇“Linux环境C编程项目实战”详细介绍一个媒体播放器项目的开发过程,提高读者的实战水平。
《Linux环境C程序设计(第3版)》适合所有想全面学习Linux环境C程序设计的人员阅读,也适合基于Linux环境进行开发的工程技术人员阅读,还适合高等院校相关专业的学生和培训机构的学员作为学习用书。
徐诚,毕业于华中科技大学计算机通信工程专业。擅长C与C 编程,精通Linux内核及其开发技术。从事Linux系统开发工作多年,有丰富的系统开发经验。曾多次在专业刊物上发表技术文章,并长期在CSDN担任社区专家。独立开发的基于移动Linux系统的MISSMOBLIN人工智能助手软件获得Intel公司举办的YourMove软件大赛中国区的第五名。
第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 免费软件与开源软件 3
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 安装前的准备 6
1.3.2 系统需求 7
1.3.3 硬盘分区 7
1.3.4 准备安装媒介 8
1.3.5 以图形方式安装Linux 8
1.3.6 升级为最新的内核版本 10
1.3.7 安装中文支持 10
1.4 小结 11
1.5 习题 11
第2章 Linux基本操作 12
2.1 登录 12
2.1.1 Shell程序 12
2.1.2 控制台 12
2.1.3 终端 13
2.2 文件和目录 14
2.2.1 文件系统 14
2.2.2 文件名 15
2.2.3 路径名 16
2.2.4 工作目录 16
2.2.5 起始目录 16
2.3 输入和输出 17
2.3.1 文件描述符 17
2.3.2 标准输入、标准输出和标准错误 17
2.3.3 标准输入和输出函数 17
2.4 小结 17
2.5 习题 18
第3章 Linux C的编译器与调试器 19
3.1 GCC和G 编译器 19
3.1.1 GCC和G 编译器的安装 19
3.1.2 GCC和G 编译命令 19
3.1.3 GCC和G 编译选项 20
3.1.4 GCC和G 编译器的执行过程 20
3.2 程序和进程 21
3.2.1 程序 21
3.2.2 进程和PID 21
3.3 ANSI C标准 22
3.3.1 函数原型 22
3.3.2 类属指针 22
3.3.3 原始系统数据类型 22
3.4 编译hello world 23
3.4.1 使用Vi编写源代码 23
3.4.2 程序的编译与连接 24
3.4.3 使用终端运行程序 24
3.5 GDB调试器 24
3.5.1 GDB调试器简介 24
3.5.2 GDB调试器的安装 25
3.5.3 GDB常用的调试命令 25
3.5.4 在GDB中运行程序 26
3.5.5 检查数据 26
3.6 小结 26
3.7 习题 27
第4章 Linux开发环境 28
4.1 文本编辑工具 28
4.1.1 Vim的使用方法 28
4.1.2 Emacs的使用方法 29
4.2 集成开发环境 30
4.2.1 Eclipse简介 30
4.2.2 Kdevelop简介 30
4.3 使用Eclipse开发C和C 程序 31
4.3.1 安装与配置Eclipse 31
4.3.2 Eclipse界面 31
4.3.3 编译与运行源代码 32
4.3.4 调试源代码 33
4.4 小结 33
4.5 习题 34
第2篇 C/C 语言基础知识
第5章 C语言编程基础 36
5.1 程序设计语言的发展 36
5.1.1 机器语言 36
5.1.2 汇编语言 36
5.1.3 高级语言 36
5.2 C语言的特点 37
5.2.1 C语言是中级语言 37
5.2.2 C语言是结构化语言 38
5.2.3 C语言是程序员的语言 38
5.3 C语言的程序结构 38
5.3.1 基本程序结构 39
5.3.2 函数库和链接 40
5.3.3 开发一个C语言程序 41
5.3.4 C语言的关键字 42
5.4 算法 42
5.4.1 流程图与算法的结构化描述 42
5.4.2 用N-S图描述算法 44
5.4.3 用PAD图描述算法 44
5.5 软件工程概述 45
5.5.1 认识软件工程 45
5.5.2 瀑布模型及其改进 46
5.5.3 迭代发布模型 47
5.5.4 朴素软件工程思想 47
5.6 小结 49
5.7 习题 49
第6章 数据类型、运算符和表达式 51
6.1 C语言的数据类型 51
6.1.1 基本类型的字长与范围 51
6.1.2 聚合类型与修饰符 52
6.2 常量与变量 53
6.2.1 标识符命名 53
6.2.2 常量 53
6.2.3 变量 54
6.3 整型数据 55
6.3.1 整型常量 55
6.3.2 整型变量 55
6.4 浮点型数据 56
6.4.1 浮点型常量 56
6.4.2 浮点型变量 56
6.5 字符型数据 57
6.5.1 字符常量 57
6.5.2 字符串常量 57
6.5.3 转义字符 57
6.5.4 符号常量 58
6.5.5 字符变量 58
6.6 运算符 59
6.6.1 算术运算符 59
6.6.2 自增和自减 59
6.6.3 关系和逻辑运算符 60
6.6.4 位操作符 61
6.6.5 问号操作符 61
6.6.6 逗号操作符 62
6.6.7 优先级 62
6.7 表达式 63
6.7.1 表达式中的类型转换 63
6.7.2 构成符 63
6.7.3 空格与括号 64
6.7.4 C语言中的简写形式 64
6.8 C语言的预处理命令 64
6.8.1 宏替换命令 64
6.8.2 终止编译命令 65
6.8.3 文件包含命令 65
6.8.4 条件编译命令 66
6.8.5 修改行号命令 67
6.8.6 编译指示命令 68
6.8.7 预定义的宏名 68
6.8.8 注释 69
6.9 小结 69
6.10 习题 69
第7章 程序控制结构 71
7.1 程序的3种基本结构 71
7.2 数据的输入与输出 71
7.2.1 scanf()函数 71
7.2.2 printf()函数 73
7.2.3 getchar()函数与putchar()函数 74
7.3 条件控制语句 75
7.3.1 if语句 75
7.3.2 switch语句 76
7.4 循环控制语句 77
7.4.1 while语句 78
7.4.2 do-while语句 78
7.4.3 for语句 79
7.4.4 break语句与continue语句 80
7.5 媒体播放器——建立程序结构 81
7.5.1 编写伪代码 81
7.5.2 建立媒体播放器的程序结构 82
7.6 小结 84
7.7 习题 84
第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 指针与指针变量 90
8.5 指针变量的定义与引用 92
8.5.1 指针变量的定义 92
8.5.2 指针变量的引用 93
8.6 指针与数组 93
8.6.1 指针与一维数组 94
8.6.2 指针与二维数组 94
8.6.3 指针与字符串数组 95
8.7 指针的地址分配 96
8.8 指针数组 97
8.9 指向指针的指针 97
8.10 媒体播放器——建立播放列表 98
8.10.1 建立一个播放列表 98
8.10.2 对播放列表排序 102
8.11 小结 104
8.12 习题 104
第9章 函数 106
9.1 函数说明与返回值 106
9.1.1 函数的类型说
— 没有更多了 —
以下为对购买帮助不大的评价