图书介绍

轻松学Linux编程PDF|Epub|txt|kindle电子书版本网盘下载

轻松学Linux编程
  • 阎映炳等编著 著
  • 出版社: 北京:化学工业出版社
  • ISBN:9787122149992
  • 出版时间:2012
  • 标注页数:476页
  • 文件大小:372MB
  • 文件页数:488页
  • 主题词:Linux操作系统-程序设计

PDF下载


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

下载说明

轻松学Linux编程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一篇 系统环境2

第1章Linux系统概述2

1.1计算机操作系统简介2

1.1.1操作系统的概念2

1.1.2操作系统的基本功能2

1.1.3主要操作系统简介3

1.2 Linux操作系统介绍4

1.2.1 Linux的来源4

1.2.2什么是Linux5

1.2.3 Linux的特性及优点7

1.2.4为什么要选择Linux8

1.2.5内核的组成8

1.3主流Linux操作系统及发行版本9

1.3.1 Linux内核的版本10

1.3.2 Linux的发行版本10

1.4小结10

1.5习题10

1.6上机实训11

第2章shell环境12

2.1shell介绍12

2.1.1 shell的种类12

2.1.2如何进入shell13

2.1.3如何使用shell15

2.2 shell编程基础16

2.2.1创建和运行shell脚本程序16

2.2.2 shell环境变量16

2.2.3常用的shell命令18

2.2.4管道与重定向的使用20

2.2.5 shell变量的使用21

2.2.6 shell运算符的应用22

2.2.7在shell脚本中进行条件控制24

2.2.8在shell脚本中使用for循环25

2.2.9在shell脚本中使用while循环27

2.2.10在shell脚本中使用until循环28

2.2.11在shell脚本中使用函数28

2.3综合实例29

2.3.1实例需求29

2.3.2系统设计29

2.3.3程序代码30

2.4小结34

2.5习题34

2.6上机实训35

第二篇C语言及编程环境38

第3章C语言简介38

3.1 C语言概述38

3.1.1 C语言的发展简史38

3.1.2 C语言的特点39

3.2 C语言的组成元素39

3.2.1字符集39

3.2.2标识符40

3.2.3关键字40

3.2.4常量的类型41

3.2.5变量的类型41

3.2.6变量的存储类型42

3.2.7变量的作用域44

3.2.8运算符44

3.2.9注释方法46

3.3语句与控制结构46

3.3.1表达式语句46

3.3.2复合语句46

3.3.3函数调用语句46

3.3.4控制语句47

3.4函数与程序结构51

3.4.1库函数51

3.4.2用户自定义函数51

3.5数组52

3.5.1一维数组的定义和使用52

3.5.2多维数组的定义和使用53

3.6结构55

3.6.1结构的定义55

3.6.2结构成员的引用56

3.7指针56

3.7.1指针的概念57

3.7.2指针的定义和使用57

3.7.3指针变量的运算57

3.8综合实例58

3.8.1冒泡排序算法原理58

3.8.2冒泡排序算法实现59

3.9小结61

3.10习题62

3.11上机实训62

第4章vi编辑器65

4.1 vi编辑器概述65

4.1.1 vi的启动65

4.1.2 vi的操作方式65

4.1.3 vi编辑器的功能键67

4.1.4退出vi编辑器68

4.2 vi编辑器的命令68

4.2.1光标移动命令68

4.2.2滚动屏幕命令69

4.2.3文本编辑命令69

4.2.4文本删除命令69

4.2.5文本修改命令70

4.2.6文本移动命令70

4.2.7搜索命令71

4.2.8 ex转义命令71

4.3 vi编辑器的选项72

4.3.1选项的含义72

4.3.2选项的设置方式73

4.4小结74

4.5习题74

4.6上机实训75

第5章gcc编译器76

5.1编译过程简述76

5.1.1预编译过程76

5.1.2编译的过程78

5.1.3优化及汇编的过程79

5.2链接过程简述79

5.2.1链接的过程80

5.2.2静态链接与动态链接80

5.3 gcc编译器简述81

5.3.1程序的编译与链接81

5.3.2 gcc编译器的工作过程81

5.4 gcc编译器语法82

5.4.1常用语法82

5.4.2用gcc编译器生成可执行文件83

5.4.3用gcc编译器生成动态链接库83

5.4.4如何使用动态链接85

5.4.5 gcc编译器常见错误排除85

5.5小结86

5.6习题86

5.7上机实训86

第6章make的使用88

6.1 makefiile简介88

6.2 makefiile的书写规则89

6.2.1基本语法规则89

6.2.2定义变量89

6.2.3环境变量90

6.2.4通配符的使用90

6.2.5使用条件判断91

6.2.6在makefile中使用函数92

6.2.7使用make与直接使用gcc脚本 的区别93

6.3 make工具93

6.3.1运行make命令93

6.3.2 make命令的工作过程94

6.3.3在makefiile中使用伪目标94

6.3.4 make命令的返回值95

6.4综合实例95

6.4.1 makefiile应用的环境95

6.4.2 makefiile的实现及解释95

6.5小结96

6.6习题96

6.7上机实训97

第7章 程序调试98

7.1错误处理98

7.1.1使用标准错误输出98

7.1.2使用ermo全局变量99

7.1.3使用错误信号处理100

7.1.4使用assert断言101

7.1.5内存泄露的检查102

7.1.6其他可能的内存错误104

7.2 gdb介绍105

7.2.1利用gdb调试的前提105

7.2.2启动gdb的方法105

7.2.3 gdb的基本功能105

7.3使用gdb进行调试实例108

7.4小结109

7.5习题109

7.6上机实训109

第8章 创建与使用库111

8.1函数库介绍111

8.1.1系统函数库的使用111

8.1.2用户自定义函数库的创建和使用112

8.2库函数与系统调用114

8.2.1系统调用介绍115

8.2.2库函数介绍116

8.3动态库的创建与使用117

8.4综合实例120

8.5小结121

8.6习题122

8.7上机实训122

第三篇 输入输出及进程管理126

第9章 文件操作126

9.1 Linux文件系统简述126

9.1.1逻辑磁盘分区管理126

9.1.2文件系统的建立与挂载127

9.1.3虚拟文件系统131

9.1.4 ext2文件系统131

9.1.5文件类型133

9.1.6文件权限管理134

9.2文件基本操作139

9.2.1文件编程的基本概念140

9.2.2文件的创建与打开141

9.2.3文件的读写146

9.2.4文件的关闭与删除148

9.2.5文件的随机存取151

9.3文件安全编程153

9.3.1文件的属主和用户组编程153

9.3.2设置文件权限(UGO模式)155

9.3.3设置文件权限(ACL模式)158

9.4文件属性编程162

9.5目录编程166

9.6综合实例170

9.6.1ELF文件格式171

9.6.2程序实现171

9.7小结175

9.8习题176

9.9上机实训176

第10章 标准输入输出库178

10.1标准IO的基本概念178

10.1.1流178

10.1.2缓存179

10.1.3标准输入、标准输出和标准 错误输出181

10.2使用标准I/O进行文件操作183

10.2.1打开关闭流文件183

10.2.2单字符方式读写184

10.2.3行方式读写185

10.2.4二进制方式读写187

10.2.5格式化输入输出189

10.2.6在流文件中定位192

10.3综合实例193

10.4小结197

10.5习题197

10.6上机实训197

第11章 界面程序设计——Qt204

11.1 Qt简述204

11.1.1 Qt的组成204

11.1.2 Qt的优点204

11.2 Qt开发包的安装205

11.3 Qt集成开发环境介绍206

11.3.1启动设计器206

11.3.2设计器界面元素介绍206

11.4 Qt程序开发207

11.4.1建立新项目208

11.4.2设计窗口208

11.4.3添加事件处理209

11.4.4添加主程序210

11.5 Qt程序的生成212

11.6小结213

11.7习题213

11.8上机实训213

第12章 界面程序设计——GTK+219

12.1 GNOME与KDE219

12.1.1 Linux图形界面原理219

12.1.2 X协议220

12.1.3 GNOME与KDE的启动220

12.1.4 GNOME与KDE的区别221

12.2使用GTK+进行开发221

12.2.1GTK+的安装221

12.2.2 GTK+程序的初始化与退出222

12.2.3 GTK+的事件处理222

12.2.4使用GTK+实现HelloWorld223

12.2.5编译GTK+程序225

12.2.6在GTK+中使用控件225

12.3综合实例226

12.3.1实例需求227

12.3.2实例代码及解释227

12.4小结228

12.5习题229

12.6上机实训229

第13章 进程233

13.1进程的基本概念233

13.1.1进程的属性233

13.1.2进程的内存映像236

13.1.3进程组236

13.1.4进程的会话238

13.1.5进程的控制终端240

13.1.6进程的状态241

13.1.7进程的优先级242

13.2进程的运行环境245

13.2.1进程的入口函数245

13.2.2进程的环境变量250

13.2.3进程的内存分配252

13.3进程的创建254

13.3.1调用fork创建进程254

13.3.2调用exec系列函数执行程序256

13.3.3调用system创建进程259

13.4进程的终止260

13.4.1调用exit退出进程260

13.4.2调用wait等待进程退出260

13.5小结263

13.6习题263

13.7上机实训263

第14章 信号266

14.1信号的基本概念266

14.1.1信号的定义266

14.1.2信号的来源267

14.1.3信号的分类267

14.2信号的安装及处理269

14.2.1信号的处理方式269

14.2.2用signal安装信号270

14.2.3用sigaction安装信号271

14.2.4信号的阻塞处理274

14.2.5信号集的操作277

14.2.6未决信号的处理277

14.2.7等待信号279

14.2.8信号处理函数的实现281

14.3信号的发送283

14.3.1使用kill发送信号283

14.3.2使用sigqueue发送信号284

14.4 SIGALRM信号285

14.4.1安装SIGALRM信号285

14.4.2设置定时器286

14.5 SIGCLD信号287

14.5.1子进程的退出过程287

14.5.2 SIGCLD信号的处理288

14.6小结290

14.7习题290

14.8上机实训290

第四篇 进程间通信(IPC)及网络编程294

第15章 进程间通信——管道294

15.1进程间通信概念294

15.2管道的概念及分类295

15.2.1管道的概念及特点295

15.2.2管道的分类296

15.3管道编程296

15.3.1创建管道296

15.3.2读写管道299

15.3.3关闭管道301

15.3.4管道I/O301

15.4命名管道编程303

15.4.1创建管道303

15.4.2打开管道及读写305

15.4.3管道的删除307

15.5小结307

15.6习题307

15.7上机实训307

第16章 进程间通信——消息队列309

16.1 System V进程间通信概述309

16.1.1 Shell环境控制IPC309

16.1.2进程间通信关键字311

16.1.3进程间通信标识符311

16.1.4 IPC权限许可结构312

16.2消息队列基本概念313

16.2.1队列313

16.2.2消息313

16.2.3消息队列314

16.3消息队列编程315

16.3.1键值生成函数315

16.3.2创建消息队列316

16.3.3消息发送319

16.3.4消息接收322

16.3.5控制消息队列323

16.4小结326

16.5习题326

16.6上机实训326

第17章 进程间通信——共享内存330

17.1共享内存基本概念330

17.1.1共享内存编程模型330

17.1.2共享内存的映射331

17.1.3共享内存数据结构331

17.2共享内存编程332

17.2.1创建共享内存332

17.2.2映射共享内存334

17.2.3删除共享内存映射336

17.2.4控制共享内存336

17.3小结339

17.4习题339

17.5上机实训339

第18章 进程间通信——信号量342

18.1 PV操作原理342

18.1.1 PV操作的来源342

18.1.2 PV操作的定义343

18.1.3 PV操作的应用344

18.2信号量基本概念346

18.2.1 Linux信号量简介346

18.2.2信号量的控制结构347

18.3信号量编程347

18.3.1创建信号量347

18.3.2信号量操作349

18.3.3信号量控制353

18.4综合实例——利用信号量实现 生产者-消费者模型356

18.4.1需求356

18.4.2需求分析与设计356

18.4.3实现代码及分析357

18.5小结360

18.6习题360

18.7上机实训360

第19章Linux网络环境362

19.1计算机网络基础362

19.1.1计算机网络分类362

19.1.2网络拓扑结构363

19.1.3网络通信协议364

19.1.4 OSI参考模型365

19.2 TCP/IP协议概述367

19.2.1 TCP/IP分层模型367

19.2.2 TCP/IP协议族368

19.2.3网络地址369

19.2.4端口371

19.3客户机/服务器模型372

19.4传输控制协议374

19.4.1连接建立374

19.4.2连接关闭374

19.4.3 TCP数据报格式376

19.5用户数据报协议377

19.6小结377

19.7习题378

19.8上机实训378

第20章 基本套接字编程381

20.1套接字编程简述381

20.1.1半相关与全相关381

20.1.2地址族与协议族382

20.1.3面向连接与面向无连接382

20.1.4套接字类型383

20.1.5字节序383

20.1.6套接字连接方式385

20.1.7数据传输方式385

20.2套接字数据结构386

20.2.1套接字地址结构387

20.2.2通用套接字地址结构387

20.2.3主机名称数据结构388

20.2.4服务名称数据结构390

20.2.5通用数据收发结构391

20.3基本套接字函数392

20.3.1字节操作函数392

20.3.2字节序操作函数395

20.3.3地址转换函数395

20.3.4套接字函数398

20.4套接字选项415

20.4.1套接字选项函数415

20.4.2 SO_KEEPALIVE选项416

20.4.3 SO_LINGER选项417

20.4.4 SO_RCVBUF和SO_SNDBUF 选项419

20.4.5 SO_RCVTIMEO和 SO_SNDTIMEO选项420

20.4.6 SO_REUSEADDR和 SO_REUSEPORI选项421

20.5 TCP套接字编程421

20.5.1重复服务器编程421

20.5.2并发服务器编程422

20.6 UDP套接字编程427

20.6.1 UDP编程模型428

20.6.2 UDP客户/服务器编程428

20.7小结431

20.8习题432

20.9上机实训432

第21章 综合实例——银行代理收费 服务器436

21.1程序需求436

21.2程序实现437

21.3小结451

附录1常见面试题452

附录2 Linux下常见C函数字母索引470

热门推荐