图书介绍

Linux环境C程序设计PDF|Epub|txt|kindle电子书版本网盘下载

Linux环境C程序设计
  • 徐诚等编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302206408
  • 出版时间:2010
  • 标注页数:605页
  • 文件大小:227MB
  • 文件页数:629页
  • 主题词:Linux操作系统-程序设计;C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Linux环境C程序设计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 升级最新内核16

1.3.6 安装中文支持16

1.4 小结16

第2章 Linux基本操作17

2.1 登录17

2.1.1 shell程序17

2.1.2 控制台17

2.1.3 终端18

2.2 文件和目录18

2.2.1 文件系统19

2.2.2 文件名20

2.2.3 路径名20

2.2.4 工作目录21

2.2.5 起始目录21

2.3 输入和输出21

2.3.1 文件描述符21

2.3.2 标准输入、标准输出和标准错误21

2.3.3 标准输入输出函数22

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标准25

3.3.1 函数原型26

3.3.2 类属指针26

3.3.3 原始系统数据类型26

3.4 编译hello world26

3.4.1 使用VI编写源代码27

3.4.2 程序的编译与连接27

3.4.3 使用终端运行程序28

3.5 GDB调试器28

3.5.1 GDB调试器概述28

3.5.2 GDB调试器安装28

3.5.3 GDB常用调试命令29

3.5.4 在GDB下运行程序29

3.5.5 检查数据29

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界面34

4.3.3 编译与运行源代码35

4.3.4 Debug源代码36

4.4 小结37

第2篇 C/C++语言基础第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 迭代发布模型50

5.5.4 朴素软件工程思想51

5.6 小结52

第6章 数据类型、运算符和表达式53

6.1 C语言的数据类型53

6.1.1 基本类型的字长与范围53

6.1.2 聚合类型与修饰符54

6.2 常量与变量55

6.2.1 标识符命名55

6.2.2 常量55

6.2.3 变量56

6.3 整型数据56

6.3.1 整型常量57

6.3.2 整型变量57

6.4 浮点型数据58

6.4.1 浮点型常量58

6.4.2 浮点型变量58

6.5 字符型数据58

6.5.1 字符常量59

6.5.2 字符串常量59

6.5.3 转义字符59

6.5.4 符号常量60

6.5.5 字符变量60

6.6 运算符61

6.6.1 算术运算符61

6.6.2 自增和自减61

6.6.3 关系和逻辑运算符62

6.6.4 位操作符63

6.6.5 问号操作符63

6.6.6 逗号操作符64

6.6.7 优先级64

6.7 表达式65

6.7.1 表达式中的类型转换65

6.7.2 构成符cast65

6.7.3 空格与括号65

6.7.4 C语言中的简写形式66

6.8 C语言的预处理命令66

6.8.1 宏替换命令66

6.8.2 终止编译命令67

6.8.3 文件包含命令67

6.8.4 条件编译命令68

6.8.5 修改行号命令69

6.8.6 编译指示命令70

6.8.7 预定义的宏名70

6.8.8 注释71

6.9 小结71

第7章 程序控制结构72

7.1 程序的3种基本结构72

7.2 数据的输入与输出72

7.2.1 scanf()函数72

7.2.2 printf()函数74

7.2.3 getchar()函数与putchar()函数75

7.3 条件控制语句76

7.3.1 if语句76

7.3.2 switch语句77

7.4 循环控制语句78

7.4.1 while语句78

7.4.2 do-while语句79

7.4.3 for语句80

7.4.4 break与continue语句80

7.5 媒体播放器——建立程序结构81

7.5.1 编写伪代码82

7.5.2 建立媒体播放器程序结构82

7.6 小结85

第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 指针与指针变量91

8.5 指针变量的定义与引用92

8.5.1 指针变量的定义92

8.5.2 指针变量的引用93

8.6 指针与数组94

8.6.1 指针与一维数组94

8.6.2 指针与二维数组95

8.6.3 指针与字符串数组96

8.7 指针的地址分配96

8.8 指针数组97

8.9 指向指针的指针97

8.10 媒体播放器——建立播放列表98

8.10.1 建立一个播放列表98

8.10.2 对播放列表排序103

8.11 小结104

第9章 函数105

9.1 函数说明与返回值105

9.1.1 函数的类型说明105

9.1.2 返回语句106

9.2 函数的作用域规则107

9.2.1 局部变量107

9.2.2 全局变量108

9.2.3 动态存储变量109

9.2.4 静态存储变量110

9.3 函数的调用与参数110

9.3.1 形式参数与实际参数110

9.3.2 赋值调用与引用调用111

9.4 递归111

9.5 实现问题112

9.5.1 参数和通用函数113

9.5.2 效率113

9.6 函数库和文件113

9.6.1 程序文件的大小114

9.6.2 分类组织文件114

9.6.3 函数库115

9.7 main()函数的参数116

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

9.8.1 通过函数传递参数117

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

9.9 小结124

第10章 字符及字符串处理125

10.1 字符编码125

10.1.1 ASCII编码125

10.1.2 Unicode编码126

10.2 字符处理库126

10.3 字符串转换函数127

10.4 字符串处理函数129

10.5 字符串比较函数130

10.6 字符串查找函数131

10.7 字符串内存函数132

10.8 字符串其他函数134

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

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

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 文件流操作的错误处理193

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函数调用207

15.3 进程的特殊操作207

15.3.1 获得进程ID207

15.3.2 setuid和setgid系统调用208

15.3.3 setpgrp和setpgid系统调用208

15.3.4 chdir系统调用209

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网络编程与数据库编程第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函数库简介255

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 即时通信软件工作机制264

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

19.4 小结272

第20章 数据库273

20.1 数据的存储与访问273

20.1.1 使用数据文件273

20.1.2 使用数据库277

20.2 Berkeley DB数据包279

20.2.1 Berkeley DB数据包简介279

20.2.2 Berkeley DB数据包连接和使用282

20.2.3 Berkeley DB数据包访问287

20.2.4 Berkeley DB数据包中的游标289

20.3 PostgreSQL数据库服务器介绍292

20.3.1 PostgreSQL基本概念292

20.3.2 数据库连接函数294

20.3.3 命令执行函数299

20.3.4 检索查询结果函数303

20.4 小结306

第21章 Linux系统常用数据库及接口307

21.1 SQLite数据库307

21.1.1 SQLite简介307

21.1.2 连接SQLite数据库309

21.1.3 SQLite命令执行函数312

21.1.4 SQLite检索查询结果函数314

21.2 MySQL数据库316

21.2.1 MySQL简介316

21.2.2 连接MySQL数据库318

21.2.3 查询MySQL数据库321

21.2.4 处理MySQL查询结果322

21.3 大型数据库与通用数据库接口325

21.3.1 连接Oracle数据库325

21.3.2 通用数据库接口328

21.4 媒体播放器——媒体库的数据库实现334

21.4.1 建立和连接数据库335

21.4.2 建立媒体库数据表336

21.4.3 管理媒体库数据表337

21.5 小结341

第5篇 Linux界面开发344

第22章 界面开发基础344

22.1 Linux常用桌面环境344

22.1.1 GNOME桌面环境344

22.1.2 KDE桌面环境346

22.1.3 移动设备与HILDON桌面环境348

22.2 GTK+图形环境介绍349

22.3 GLib库介绍350

22.3.1 基础类型351

22.3.2 对核心应用的支持351

22.3.3 实用功能353

22.3.4 数据类型353

22.4 GObject对象介绍354

22.4.1 对象系统355

22.4.2 GObject系统中宏定义356

22.4.3 GTypeInfo结构358

22.4.4 信号机制359

22.5 2D图形引擎Cairo介绍359

22.6 多媒体库GStreamer介绍361

22.6.1 过滤器362

22.6.2 衬垫363

22.6.3 箱柜365

22.6.4 精灵衬垫366

22.7 搭建GTK+开发环境367

22.8 小结370

第23章 界面构件开发371

23.1 常用界面构件371

23.1.1 按钮构件371

23.1.2 调整对象374

23.1.3 范围构件374

23.1.4 标签构件375

23.1.5 箭头构件376

23.1.6 工具提示对象377

23.1.7 进度条377

23.1.8 对话框378

23.1.9 标尺379

23.1.10 状态栏381

23.1.11 文本输入构件382

23.1.12 微调按钮384

23.1.13 组合输入框387

23.1.14 日历389

23.1.15 颜色选择391

23.1.16 文件选择394

23.2 复合构件396

23.2.1 快捷标签396

23.2.2 绘图区399

23.2.3 字体选择对话框407

23.2.4 消息对话框411

23.2.5 图像构件413

23.2.6 文本视区417

23.3 菜单构件418

23.3.1 菜单栏418

23.3.2 菜单构件419

23.3.3 菜单项421

23.3.4 图形菜单项424

23.3.5 复选菜单项426

23.3.6 单选菜单项428

23.3.7 分隔菜单项429

23.4 RC文件429

23.4.1 使用RC文件430

23.4.2 RC文件格式431

23.5 小结434

第24章 界面布局435

24.1 界面布局基本概念435

24.1.1 界面的宽度与高度435

24.1.2 窗体基本组成437

24.1.3 布局约定439

24.2 组装盒构件441

24.2.1 组装盒的原理441

24.2.2 组装盒示范程序442

24.2.3 表组装的原理444

24.2.4 表组装示例445

24.3 容器447

24.3.1 事件盒447

24.3.2 对齐构件448

24.3.3 固定容器450

24.3.4 布局容器451

24.3.5 框架构件453

24.3.6 比例框架455

24.3.7 分栏窗体构件456

24.3.8 视角构件457

24.3.9 滚动条窗体458

24.3.10 按钮盒459

24.3.11 工具栏462

24.3.12 笔记本464

24.4 媒体播放器——实现界面469

24.4.1 使用原型法设计媒体播放器界面469

24.4.2 编写媒体播放器界面代码472

24.5 小结481

第25章 信号与事件处理482

25.1 信号函数与回调函数482

25.1.1 信号函数482

25.1.2 回调函数486

25.2 常用GTK+信号与事件488

25.2.1 GtkObject类信号488

25.2.2 GtkWidget界面构件信号489

25.2.3 GtkWindow窗体构件信号498

25.2.4 GtkContainer容器构件信号499

25.2.5 GtkCalendar日历构件信号499

25.2.6 GtkTextView文本视区构件信号500

25.3 小结501

第26章 Glade设计程序界面502

26.1 Glade简介502

26.2 构造图形界面503

26.2.1 添加窗体503

26.2.2 添加容器509

26.2.3 添加构件516

26.2.4 设置构件属性519

26.2.5 添加事件和回调520

26.3 C语言代码联编522

26.3.1 libglade函数库编程基础522

26.3.2 使用libglade多语言支持524

26.4 小结528

第6篇 Linux环境C编程项目实践第27章 媒体播放器——项目完整实践530

27.1 软件工程实战530

27.1.1 项目需求分析530

27.1.2 软件需求说明531

27.1.3 项目视图的解决方案532

27.2 软件设计533

27.2.1 需求分析533

27.2.2 制订开发计划534

27.2.3 分工协作535

27.3 版本控制536

27.3.1 CVS服务器配置536

27.3.2 CVS服务器管理537

27.4 在Eclipse中使用CVS客户端540

27.4.1 从CVS服务器签出模块并创建项目541

27.4.2 签入文件543

27.4.3 使用Eclipse项目创建CVS模块544

27.4.4 比较文件545

27.4.5 管理CVS服务器545

27.4.6 断开项目与CVS服务器之间的关联546

27.5 音量控制对话框547

27.5.1 创建对话框547

27.5.2 添加垂直比例尺547

27.5.3 测试548

27.6 播放列表对话框550

27.6.1 创建对话框550

27.6.2 创建工具条和工具条按钮551

27.6.3 创建树视图552

27.6.4 创建对话框按钮553

27.6.5 测试553

27.7 媒体库对话框554

27.7.1 创建对话框555

27.7.2 创建工具条和工具条按钮555

27.7.3 创建分类部件和媒体信息显示部件557

27.7.4 创建搜索部件559

27.7.5 创建对话框按钮559

27.7.6 测试560

27.8 播放控制模块实现562

27.8.1 播放控制模块程序结构562

27.8.2 MP3播放功能实现564

27.8.3 播放中的回调处理567

27.9 系统集成569

27.10 主程序文件实现570

27.10.1 头文件和主函数入口570

27.10.2 媒体库模块初始化571

27.10.3 图形界面初始化571

27.10.4 退出前清理572

27.10.5 编译和运行572

27.11 媒体库功能集成572

27.11.1 初始化573

27.11.2 显示媒体库对话框573

27.11.3 添加文件580

27.11.4 添加目录582

27.11.5 删除文件信息584

27.11.6 删除所有文件信息585

27.11.7 搜索本地文件586

27.11.8 传递到播放列表587

27.11.9 查找589

27.12 播放列表功能集成590

27.12.1 初始化590

27.12.2 显示播放列表对话框&.591

27.12.3 添加文件593

27.12.4 添加目录595

27.12.5 打开文件596

27.12.6 保存文件597

27.12.7 删除文件598

27.12.8 删除全部600

27.12.9 排序600

27.13 播放控制模块集成601

27.13.1 播放模式设置601

27.13.2 开始播放602

27.13.3 暂停播放603

27.13.4 停止播放603

27.13.5 播放上一首603

27.13.6 播放下一首604

27.14 小结605

热门推荐