• Linux环境C程序设计(第3版)
21年品牌 40万+商家 超1.5亿件商品

Linux环境C程序设计(第3版)

正版全新

70.17 5.0折 139 全新

库存11件

上海浦东
认证卖家担保交易快速发货售后保障

作者徐诚

出版社清华大学出版社

ISBN9787302654797

出版时间2022-12

装帧其他

开本16开

纸张胶版纸

定价139元

货号4362932

上书时间2024-07-11

闲暇一卷书的书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
【书    名】 Linux环境C程序设计(第3版)
【书    号】 9787302654797
【出 版 社】 清华大学出版社
【作    者】 徐诚
【出版日期】 2024-03-01
【开    本】 16开
【定    价】 139.00元

【编辑推荐】 
“Linux典藏大系”畅销15年,经久不衰,累计销售30万余册。

广受好评的Linux畅销书全面升级,ChinaUnix社区力荐。

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

通过复杂的项目案例全面展示开源软件的设计思想。

超值资料:596分钟教学视频 源代码 思维导图 教学PPT 习题答案 开发工具。

内容新颖:以当前流行的开发环境和工具的稳定版本进行讲解。

内容全面:涵盖Linux环境C编程的基础知识、高级技术与应用实战案例。

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

融会贯通:将Linux、C/C 与软件工程的思想结合起来讲解。

注重实践:贯穿近300个典型示例进行讲解,内容非常实用。

案例经典:用难度较高的媒体播放器案例贯穿全书,融入丰富的开发经验。

视频讲解:专门为重点内容录制多媒体教学视频,高效、直观。

提供习题:每章都提供习题,帮助读者巩固和自测重点内容的掌握情况。

注重技巧:各章都配思维导图,以及命令和关键字助记技巧,容易记忆。

【内容简介】 
本书是获得大量读者好评的“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环境进行开发的工程技术人员阅读,还适合高等院校相关专业的学生和培训机构的学员作为学习用书。

【目录】 
第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  函数的类型说明 106

9.1.2  返回语句 107

9.2  函数的作用域规则 108

9.2.1  局部变量 108

9.2.2  全局变量 109

9.2.3  动态存储变量 110

9.2.4  静态存储变量 110

9.3  函数的调用与参数 111

9.3.1  形式参数与实际参数 111

9.3.2  赋值调用与引用调用 111

9.4  递归 112

9.5  实现问题 113

9.5.1  参数和通用函数 113

9.5.2  效率 114

9.6  函数库和文件 114

9.6.1  程序文件的大小 114

9.6.2  分类组织文件 115

9.6.3  函数库 116

9.7  main()函数的参数 117

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

9.8.1  通过函数传递参数 118

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

9.9  小结 125

9.10  习题 125

第10章  字符与字符串处理 127

10.1  字符编码 127

10.1.1  ASCII编码 127

10.1.2  Unicode编码 127

10.2  字符处理库 128

10.3  字符串转换函数 129

10.4  字符串处理函数 131

10.5  字符串比较函数 132

10.6  字符串查找函数 133

10.7  字符串内存函数 134

10.8  字符串的其他函数 136

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

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

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

10.10  小结 142

10.11  习题 142

第11章  结构体与共用体 144

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

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

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

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

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

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

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

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

11.4  共用体 148

11.4.1  共用体的定义 148

11.4.2  共用体变量的引用 149

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

11.5.1  设计媒体库的数据结构 150

11.5.2  媒体库的基本操作 153

11.5.3  在媒体库中添加文件 155

11.5.4  在媒体库中查找文件 158

11.5.5  从媒体库中删除选定的文件 159

11.5.6  删除媒体库中的所有文件 160

11.6  小结 160

11.7  习题 161

第12章  C  语言编程基础 162

12.1  类和数据抽象 162

12.1.1  用类实现数据抽象 162

12.1.2  类的作用域和访问类成员 164

12.1.3  从实现中分离接口 164

12.1.4  控制访问成员 165

12.1.5  构造函数和析构函数 165

12.1.6  const对象和const成员函数 166

12.1.7  friend对象和friend类 167

12.1.8  this指针 168

12.1.9  动态内存分配 168

12.1.10  static类成员 169

12.2  C  的特性 169

12.2.1  运算符重载 170

12.2.2  继承 171

12.2.3  虚拟函数和多态性 171

12.2.4  流输入与输出 172

12.2.5  模板 172

12.2.6  异常处理 173

12.3  小结 174

12.4  习题 174

第3篇  Linux系统编程

第13章  文件操作 176

13.1  文件的属性与权限 176

13.1.1  文件的属性 176

13.1.2  文件的权限 177

13.1.3  修改文件的权限 177

13.2  文件管理 178

13.2.1  系统调用的原理 178

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

13.2.3  文件状态和属性操作 181

13.2.4  目录操作 183

13.2.5  删除目录或文件操作 185

13.2.6  错误处理 186

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

13.3.1  在媒体库中添加目录 186

13.3.2  搜索本地硬盘中的所有媒体文件 188

13.4  小结 188

13.5  习题 188

第14章  文件I/O操作 190

14.1  非缓冲文件操作 190

14.1.1  使用read()函数读取文件 190

14.1.2  使用write()函数写入文件 191

14.1.3  随机读写文件 192

14.2  缓冲文件操作 193

14.2.1  打开与关闭文件流 193

14.2.2  读取与写入文件流 194

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

14.2.4  文件流的定位操作 197

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

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

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

14.3.1  读取播放列表文件 199

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

14.4  小结 202

14.5  习题 202

第15章  进程控制 204

15.1  进程简述 204

15.1.1  进程的状态和状态转换 204

15.1.2  进程控制 207

15.1.3  进程调度 208

15.2  进程的基本操作 208

15.2.1  fork系统调用 208

15.2.2  exec系统调用 210

15.2.3  exit系统调用 211

15.2.4  wait系统调用 212

15.2.5  sleep系统调用 213

15.3  进程的特殊操作 213

15.3.1  获得进程ID 213

15.3.2  设置进程的UID和GID 214

15.3.3  设置进程的PGID 214

15.3.4  设置进程的当前工作目录 215

15.3.5  设置根目录 215

15.3.6  设置进程的优先级 215

15.4  小结 215

15.5  习题 216

第16章  进程间的通信 217

16.1  进程之间的管道通信 217

16.1.1  pipe系统调用 218

16.1.2  dup系统调用 219

16.2  进程之间的D-Bus通信 220

16.2.1  D-Bus的基本概念 220

16.2.2  D-Bus用例 221

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

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

16.3.2  调整系统音量 225

16.4  小结 227

16.5  习题 227

第17章  线程控制 228

17.1  线程的基本概念 228

17.2  线程的实现 228

17.2.1  用户态线程 229

17.2.2  内核态线程 229

17.3  POSIX线程库 229

17.3.1  创建线程 229

17.3.2  结束线程 230

17.4  同步 231

17.4.1  信号量同步 232

17.4.2  互斥量同步 233

17.5  取消线程 235

17.6  多线程的实现 237

17.7  小结 238

17.8  习题 239

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

第18章  网络编程基础 242

18.1  计算机网络的组成 242

18.1.1  网络结构 242

18.1.2  OSI参考模型 244

18.1.3  TCP/IP参考模型 245

18.2  TCP/IP概述 246

18.2.1  IP与Internet 246

18.2.2  IP地址 247

18.2.3  TCP简介 248

18.2.4  UDP简介 249

18.3  Socket套接字 250

18.3.1  Socket套接字简介 250

18.3.2  创建套接字 251

18.3.3  套接字地址 252

18.3.4  套接字的名字 252

18.3.5  创建套接字队列 253

18.3.6  接受连接 253

18.3.7  请求连接 254

18.3.8  关闭连接 255

18.3.9  套接字通信 255

18.4  网络通信 256

18.4.1  查询主机名称 257

18.4.2  Internet守护进程 259

18.5  小结 260

18.6  习题 260

第19章  网络编程函数库 261

19.1  HTTP与FTP函数库 261

19.1.1  libcurl函数库简介 261

19.1.2  libcurl函数库中的主要函数 262

19.1.3  使用libcurl函数库实现简单的HTTP访问 264

19.2  SMTP、POP与IMAP函数库 265

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

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

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

19.3  即时通信函数库 269

19.3.1  libpurple函数库简介 269

19.3.2  即时通信软件的工作机制 270

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

19.4  小结 278

19.5  

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP