图书介绍
精通Linux C编程PDF|Epub|txt|kindle电子书版本网盘下载
![精通Linux C编程](https://www.shukui.net/cover/26/30949245.jpg)
- 程国钢编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302393672
- 出版时间:2015
- 标注页数:563页
- 文件大小:134MB
- 文件页数:577页
- 主题词:Linux操作系统-程序设计;C语言-程序设计
PDF下载
下载说明
精通Linux C编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第Ⅰ部分 基础篇3
第1章 Linux系统概述3
1.1 什么是Linux4
1.2 Linux系统特点及主要功能5
1.2.1 Linux系统特点5
1.2.2 Linux系统的主要功能6
1.3 Linux的内核版本和发行版本7
1.4 系统的安装8
1.4.1 系统安装前的准备工作8
1.4.2 安装Linux9
1.4.3 使用虚拟机13
1.5 Shell的使用16
1.5.1 Shell简介16
1.5.2 常见Shell的种类17
1.5.3 Shell的简单使用18
1.5.4 通配符19
1.5.5 引号20
1.5.6 注释符21
1.6 Linux常用命令22
1.6.1 与目录相关的命令22
1.6.2 与文件相关的命令22
1.6.3 与网络服务相关的命令23
1.7 本章小结24
实战演练24
第2章 C语言编程基础25
2.1 C语言的历史背景26
2.2 C语言的特点26
2.3 C语言的基本数据类型27
2.3.1 整型27
2.3.2 实型28
2.3.3 字符型29
2.4 运算符与表达式31
2.4.1 算术运算符与算术表达式31
2.4.2 赋值运算符与赋值表达式32
2.4.3 逗号运算符与逗号表达式33
2.5 C程序的3种基本结构33
2.5.1 顺序结构34
2.5.2 选择结构35
2.5.3 循环结构38
2.6 C语言中的数据输入与输出40
2.6.1 字符输出函数putchar41
2.6.2 字符输入函数getchar41
2.6.3 格式输出函数printf41
2.6.4 格式输入函数scanf43
2.7 函数44
2.7.1 函数的定义44
2.7.2 函数的调用44
2.7.3 变量的存储类别46
2.8 数组49
2.8.1 一维数组的定义和使用50
2.8.2 二维数组的定义和使用51
2.8.3 字符数组和字符串52
2.8.4 常用字符串处理函数53
2.9 指针56
2.9.1 地址和指针57
2.9.2 指针的定义和使用57
2.9.3 数组与指针58
2.9.4 字符串与指针59
2.9.5 指向函数的指针60
2.10 结构体和共用体60
2.10.1 定义和引用结构体60
2.10.2 结构体数组61
2.10.3 指向结构体的指针62
2.10.4 共用体63
2.10.5 使用typedef定义类型64
2.11 链表65
2.11.1 链表概述65
2.11.2 建立动态单向链表66
2.11.3 单向链表的输出67
2.11.4 对单向链表的删除操作68
2.11.5 对单向链表的插入操作69
2.11.6 循环链表69
2.11.7 双向链表70
2.12 位运算符和位运算71
2.12.1 “按位与”运算符(&)71
2.12.2 “按位或”运算符(|)71
2.12.3 “取反”运算符(~)72
2.12.4 “异或”运算符(^)72
2.12.5 移位运算符(〈〈和〉〉)72
2.12.6 位域72
2.13 C语言预处理命令73
2.13.1 宏定义73
2.13.2 文件包含75
2.13.3 条件编译75
2.13.4 #error等其他常用预处理命令76
2.14 本章小结77
实战演练77
第3章 vim与Emacs编辑器79
3.1 vim的使用80
3.2 vim使用实例85
3.3 Emacs的使用87
3.3.1 启动与退出Emacs87
3.3.2 Emacs下的基本操作88
3.4 Emacs使用实例93
3.5 本章小结94
实战演练94
第4章 gcc编译器与gdb调试器97
4.1 gcc编译器简介98
4.2 如何使用gcc99
4.2.1 安装和配置gcc99
4.2.2 gcc编译初步100
4.2.3 警告提示功能102
4.2.4 优化gcc104
4.2.5 链接库107
4.2.6 同时编译多个源程序108
4.2.7 管道108
4.2.8 调试选项109
4.3 gdb调试器110
4.3.1 gdb简介110
4.3.2 gdb常用命令111
4.3.3 gdb调试初步112
4.4 gdb的使用详解114
4.4.1 调用gdb115
4.4.2 使用断点115
4.4.3 查看运行时数据117
4.4.4 查看源程序122
4.4.5 改变程序的执行124
4.5 xxgdb调试器简介127
4.6 本章小结128
实战演练128
第5章 make的使用和Makefile的编写131
5.1 什么是make132
5.1.1 make机制概述132
5.1.2 make与Makefile的关系134
5.2 Makefile的书写规则137
5.2.1 Makefile的基本语法规则138
5.2.2 在规则中使用通配符139
5.2.3 伪目标140
5.2.4 多目标141
5.2.5 自动生成依赖性141
5.3 Makefile的命令143
5.4 变量144
5.4.1 变量的基础144
5.4.2 赋值变量145
5.4.3 define关键字146
5.4.4 override指示符147
5.4.5 目标变量和模式变量147
5.5 常用函数调用149
5.5.1 字符串处理函数149
5.5.2 文件名操作函数153
5.5.3 循环函数155
5.5.4 条件判断函数156
5.5.5 其他常用函数157
5.6 隐式规则159
5.6.1 隐式规则举例159
5.6.2 隐式规则中的变量160
5.6.3 使用模式规则162
5.7 本章小结164
实战演练164
第Ⅱ部分 提高篇169
第6章 文件I/O操作169
6.1 软件编程体系简介170
6.1.1 Linux的文件系统结构170
6.1.2 文件类型171
6.1.3 文件访问权限174
6.2 基于文件描述符的I/O操作174
6.2.1 文件描述符175
6.2.2 标准输入、标准输出和标准出错175
6.2.3 文件重定向175
6.2.4 文件的创建、打开与关闭177
6.2.5 文件的定位181
6.2.6 文件的读写183
6.3 文件的属性操作187
6.3.1 改变文件访问权限187
6.3.2 改变文件所有者189
6.3.3 重命名189
6.3.4 修改文件长度190
6.4 文件的其他操作190
6.4.1 stat、fstat和lstat函数190
6.4.2 dup和dup2函数192
6.4.3 fcntl函数192
6.4.4 sync和fsync函数193
6.5 特殊文件的操作194
6.5.1 目录文件的操作194
6.5.2 链接文件的操作197
6.5.3 管道文件的操作200
6.5.4 设备文件200
6.6 本章小结200
实战演练201
第7章 基于流的I/O操作203
7.1 流与缓存204
7.1.1 流和FILE对象204
7.1.2 标准输入、标准输出和标准出错204
7.1.3 缓存204
7.1.4 对缓存的操作207
7.2 流的打开与关闭209
7.2.1 流的打开210
7.2.2 流的关闭211
7.2.3 流关闭前的工作213
7.3 流的读写214
7.3.1 基于字符的I/O214
7.3.2 基于行的I/O217
7.3.3 直接I/O219
7.3.4 格式化I/O222
7.4 本章小结224
实战演练224
第8章 进程控制227
8.1 进程的基本概念228
8.1.1 Linux进程简介228
8.1.2 进程与作业229
8.1.3 进程标识229
8.2 进程控制的相关函数231
8.2.1 fork和vfork函数231
8.2.2 exec函数236
8.2.3 exit和exit函数242
8.2.4 wait和waitpid函数245
8.2.5 进程的一生251
8.2.6 用户ID和组ID251
8.2.7 system函数253
8.3 多个进程间的关系255
8.3.1 进程组255
8.3.2 会话期256
8.3.3 控制终端258
8.4 本章小结259
实战演练259
第9章 信号261
9.1 Linux信号简介262
9.1.1 信号的基本概念262
9.1.2 信号处理机制265
9.2 信号操作的相关函数268
9.2.1 信号的处理268
9.2.2 信号的发送276
9.2.3 信号的阻塞284
9.2.4 计时器与信号287
9.3 本章小结288
实战演练289
第10章 进程间通信291
10.1 进程间通信简介292
10.2 管道293
10.2.1 管道的概念293
10.2.2 管道的创建与关闭294
10.2.3 管道的读写295
10.3 命名管道300
10.3.1 命名管道的概念300
10.3.2 命名管道的创建301
10.3.3 命名管道的读写302
10.4 消息队列306
10.4.1 消息队列的概念306
10.4.2 消息队列的创建与打开309
10.4.3 消息队列的读写309
10.4.4 获得或设置消息队列属性311
10.5 共享内存316
10.5.1 共享内存的概念316
10.5.2 共享内存的相关操作317
10.6 信号量322
10.6.1 信号量的概念322
10.6.2 信号量集的相关操作323
10.7 本章小结329
实战演练330
第11章 线程控制331
11.1 线程的基本概念332
11.1.1 Linux线程简介332
11.1.2 线程的标识符333
11.1.3 用户态和核心态线程333
11.1.4 线程的属性334
11.2 线程控制的相关函数334
11.2.1 pthread_create函数334
11.2.2 pthread_exit函数336
11.2.3 pthread_join函数336
11.2.4 pthread_cancel函数338
11.2.5 pthread_cleanup_push和pthread_cleanup_pop函数338
11.2.6 pthread_detach函数340
11.2.7 线程和进程操作函数对比342
11.3 线程之间的通信和同步342
11.3.1 互斥锁343
11.3.2 条件变量346
11.4 本章小结351
实战演练351
第12章 网络编程353
12.1 网络编程的基础知识354
12.1.1 计算机网络体系结构354
12.1.2 传输控制协议TCP358
12.1.3 用户数据报协议UDP361
12.1.4 客户机/服务器模式361
12.2 套接口编程基础362
12.2.1 什么是套接口362
12.2.2 端口号的概念363
12.2.3 套接口的数据结构364
12.2.4 基本函数365
12.3 TCP套接口编程368
12.3.1 TCP套接口通信工作流程369
12.3.2 TCP套接口Client/Server程序实例382
12.4 UDP套接口编程387
12.4.1 UDP套接口通信工作流程387
12.4.2 UDP套接口Client/Server程序实例388
12.5 原始套接口编程391
12.5.1 原始套接口的创建392
12.5.2 原始套接口程序实例392
12.6 本章小结403
实战演练403
第13章 Linux图形界面编程405
13.1 Linux下的图形界面编程简介406
13.1.1 Qt简介406
13.1.2 GTK+简介406
13.2 界面基本元件408
13.2.1 一个简单的例子409
13.2.2 窗口410
13.2.3 标签413
13.2.4 按钮414
13.2.5 文本框415
13.3 界面布局元件418
13.3.1 表格418
13.3.2 框421
13.3.3 窗格424
13.4 其他常用元件426
13.4.1 进度条、微调按钮、组合框426
13.4.2 单选按钮、复选按钮430
13.4.3 下拉菜单432
13.5 信号与回调函数435
13.6 本章小结437
实战演练438
第Ⅲ部分 实战篇443
第14章 设计Linux下的计算器443
14.1 软件功能分析444
14.2 程序模块的划分445
14.3 软件的具体实现447
14.3.1 头文件447
14.3.2 十六进制界面显示函数448
14.3.3 十进制界面显示函数449
14.3.4 八进制界面显示函数450
14.3.5 二进制界面显示函数452
14.3.6 进制间转换函数453
14.3.7 信号处理模块456
14.3.8 主函数465
14.4 软件使用效果演示472
14.5 本章小结473
第15章 Linux平台下聊天软件的设计475
15.1 软件功能概述476
15.1.1 服务器端功能需求476
15.1.2 客户端功能需求477
15.1.3 错误处理需求478
15.2 Glade集成开发工具简介478
15.3 软件功能模块划分479
15.3.1 服务器功能模块划分479
15.3.2 客户端功能模块划分480
15.3.3 消息标识的定义480
15.3.4 消息结构体的设计481
15.4 服务器程序的具体实现482
15.4.1 服务器消息处理流程482
15.4.2 服务器主要函数和变量483
15.4.3 服务器消息处理模块的设计与实现484
15.4.4 服务器数据存储的方法485
15.4.5 用户注册流程485
15.5 客户端程序的具体实现485
15.5.1 客户端操作流程486
15.5.2 客户端发送和接收消息流程486
15.5.3 客户端主要函数和变量487
15.5.4 客户端功能模块的设计与实现488
15.6 聊天软件使用效果演示489
15.7 本章小结493
第16章 Linux远程管理工具的设计495
16.1 软件功能概述496
16.1.1 Webmin简介496
16.1.2 软件总体设计496
16.2 服务器端程序设计497
16.2.1 服务器端工作流程498
16.2.2 系统用户管理操作498
16.2.3 系统用户组的操作500
16.2.4 系统服务启动管理503
16.2.5 DNS管理操作504
16.2.6 Apache服务管理操作505
16.2.7 FTP服务管理操作508
16.3 客户端程序509
16.3.1 连接界面509
16.3.2 主界面511
16.4 本章小结513
第17章 Linux下简易防火墙软件的设计515
17.1 Netfilter基础516
17.1.1 什么是Netfilter516
17.1.2 Netfilter的HOOK机制517
17.1.3 HOOK的调用520
17.1.4 HOOK的实现521
17.1.5 IPTables简介523
17.1.6 Netfilter可以实现的控制功能524
17.2 软件设计概述525
17.2.1 软件整体框架525
17.2.2 管理端的设计527
17.2.3 控制端的设计528
17.3 用Netfilter设计控制端功能模块530
17.3.1 ICMP管理控制模块530
17.3.2 FTP管理控制模块532
17.3.3 HTTP管理控制模块533
17.3.4 模块的编译、加载与卸载534
17.4 软件功能测试536
17.5 本章小结538
第18章 基于Linux的嵌入式家庭网关远程交互操作平台的设计539
18.1 嵌入式技术简介540
18.1.1 嵌入式系统的概念540
18.1.2 嵌入式操作系统541
18.1.3 嵌入式处理器542
18.2 家庭网关的概念及其网络体系结构543
18.2.1 智能家庭网络的概念544
18.2.2 家庭网关的远程交互操作技术简介544
18.2.3 嵌入式家庭网关的网络体系结构545
18.3 嵌入式家庭网关的开发平台546
18.3.1 S3C2410微处理器简介546
18.3.2 交叉编译环境的建立548
18.4 远程交互平台的设计549
18.4.1 应用软件的开发模式549
18.4.2 嵌入式Web服务器550
18.4.3 通用网关接口CGI553
18.5 Linux下软件模块的具体实现554
18.5.1 登录验证模块555
18.5.2 串口通信模块555
18.5.3 中央空调控制模块556
18.5.4 智能水表数据采集模块561
18.5.5 试验结果562
18.6 本章小结562