图书介绍
轻松学Linux编程PDF|Epub|txt|kindle电子书版本网盘下载
![轻松学Linux编程](https://www.shukui.net/cover/58/33805870.jpg)
- 阎映炳等编著 著
- 出版社: 北京:化学工业出版社
- ISBN:9787122149992
- 出版时间:2012
- 标注页数:476页
- 文件大小:372MB
- 文件页数:488页
- 主题词:Linux操作系统-程序设计
PDF下载
下载说明
轻松学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