Linux高级程序设计 第3版PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:杨宗德,吕光宏,刘雍编著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2012
- ISBN:9787115292902
- 页数:486 页
第1章 Linux下C语言开发环境 1
1.1 Linux操作系统简介 2
1.1.1 Linux操作系统简介 2
1.1.2 GNU/Linux简介 3
1.1.3 相关术语介绍 3
1.2 Linux开发初步 5
1.2.1 Linux下C程序标准 5
1.2.2 库函数和系统调用 7
1.2.3 在线文档介绍 8
1.2.4 获取错误信息 9
1.3 部分常用工具简介 10
1.3.1 tar打包器 10
1.3.2 Linux常用命令及工具 11
1.4 Linux下编码风格 15
1.4.1 GNU编码规范 16
1.4.2 Linux内核编码规范 17
第2章 Linux下C语言开发工具 19
2.1 常用编辑工具 20
2.1.1 VIM编辑器 20
2.1.2 Emacs编辑器 22
2.1.3 Source Insight工具 23
2.2 GCC/GDB编译调试工具基础 27
2.2.1 GCC/G++简单介绍 28
2.2.2 GDB调试工具简介 30
2.2.3 使用GCC编译C程序示例 31
2.2.4 使用g++编译C++程序示例 32
2.2.5 GDB演示示例 33
第3章 Linux进程存储管理 35
3.1 Linux程序存储结构与进程结构 36
3.1.1 Linux可执行文件结构 36
3.1.2 Linux进程结构 37
3.1.3 C变量及函数存储类型 39
3.1.4 栈和堆的区别 44
3.1.5 示例:查看代码中各数据存储位置 45
3.1.6 常见内存错误示例分析 48
3.2 ANSI C动态内存管理 50
3.2.1 内存分配的基本方式 50
3.2.2 示例:为程序申请动态内存空间 50
3.2.3 内存数据管理函数 54
3.3 Valgrind及valkyrie内存管理工具 56
3.3.1 Valgrind介绍 57
3.3.2 Valgrind安装与使用 59
3.3.3 valgrind图形化工具Valkyrie 61
3.3.4 内存检测示例 62
3.4 Linux进程环境及系统限制 64
3.4.1 进程与命令行选项及参数 64
3.4.2 进程与环境变量 69
3.4.3 Linux系统限制 70
3.4.4 Linux时间管理 72
第4章 ANSI C文件IO管理 75
4.1 文件及文件流 77
4.1.1 文件与流的基本概念 77
4.1.2 标准流及流主要功能 78
4.1.3 文件流指针 79
4.1.4 缓冲区类型 81
4.1.5 指定流缓冲区 82
4.2 ANSI C文件I/O操作 85
4.2.1 打开关闭文件 85
4.2.2 读/写文件流 86
4.2.3 文件流定位 91
4.2.4 实现文件复制操作示例 92
4.3 流的格式化输入/输出操作 94
4.3.1 printf/scanf函数分析 94
4.3.2 fprintf/fscanf函数分析 95
4.3.3 sprintf函数分析 96
4.3.4 sscanf函数分析 97
第5章 POSIX文件及目录管理 99
5.1 文件描述符与内核文件表项 100
5.1.1 文件流与文件描述符的区别 100
5.1.2 文件表结构图 101
5.1.3 文件描述符与文件流的转换操作 101
5.2 POSIX标准下文件IO管理 103
5.2.1 创建/打开/关闭文件 104
5.2.2 文件控制fcntl 107
5.2.3 读/写文件内容 110
5.2.4 使用POSIX IO实现大于2G文件复制 111
5.2.5 文件定位 112
5.2.6 同步内核缓冲区 113
5.2.7 映射文件到内存 114
5.2.8 锁定/解锁文件 116
5.3 目录流基本操作 118
5.3.1 打开/关闭目录文件 118
5.3.2 读/写目录内容 119
5.3.3 定位目录位置 121
5.3.4 添加和删除目录 121
5.3.5 当前工作路径操作 122
5.3.6 文件流、目录流、文件描述符总结 123
5.4 应用案例:递归文件目录复制操作 123
5.4.1 应用需求及流程图 123
5.4.2 示例代码 125
第6章 普通文件、连接文件及目录文件属性管理 128
6.1 Linux文件系统管理 129
6.1.1 Linux下VFS虚拟文件系统 129
6.1.2 ext2文件系统结构 130
6.1.3 目录文件及常规文件存储方法 132
6.2 Linux系统下文件类型及属性 132
6.2.1 Linux文件类型及权限 132
6.2.2 Linux文件类型 133
6.2.3 文件权限修饰位 136
6.2.4 文件访问权限位 137
6.3 Linux文件属性管理 138
6.3.1 读取文件属性 138
6.3.2 修改文件权限操作 141
6.3.3 修改系统umask值 142
6.3.4 修改文件的拥有者及组 143
6.3.5 用户名/组名与UID/GID的转换 144
6.3.6 创建/删除硬连接 145
6.3.7 符号连接文件特殊操作 146
6.3.8 文件时间属性修改与时间处理 147
6.4 示例:ls-1以排序方式列出目录信息 149
6.4.1 需求及知识点涵盖 149
6.4.2 流程及源代码实现 149
6.5 示例:实现tree系统命令 152
第7章 终端及串口编程 156
7.1 终端设备类型 157
7.1.1 实际的物理串口 157
7.1.2 控制台终端 158
7.1.3 虚拟终端 159
7.1.4 当前终端 159
7.2 终端属性控制 160
7.2.1 读取/设置终端属性信息 160
7.2.2 c_cflag终端控制选项 161
7.2.3 c_lflag终端本地选项 163
7.2.4 c_iflag终端输入选项 165
7.2.5 c_oflag终端输出选项 166
7.2.6 c_cc[NCCS]终端控制字符 166
7.2.7 IOCTLs控制终端 167
7.2.8 进程与终端 168
7.3 串口编程 169
7.3.1 串口物理设备 169
7.3.2 串口终端基本操作 170
7.3.3 串口编程示例 171
7.4 控制台终端应用基础 175
7.4.1 终端属性设置 175
7.4.2 控制命令基本格式 176
7.4.3 从控制台终端获取信息不回显 178
第8章 Linux进程管理与程序开发 180
8.1 进程环境及进程属性 181
8.1.1 程序、进程与进程资源 181
8.1.2 进程状态 182
8.1.3 进程基本属性 183
8.1.4 进程用户属性 187
8.2 进程管理及控制 190
8.2.1 创建进程 190
8.2.2 在进程中运行新代码 197
8.2.3 回收进程用户空间资源 201
8.2.4 回收内核空间资源 203
8.2.5 孤儿进程与僵死进程 205
8.2.6 修改进程用户相关信息 206
8.3 Linux特殊进程 210
8.3.1 守候进程及其创建过程 210
8.3.2 日志信息及其管理 211
8.3.3 守候进程应用示例 214
第9章 进程间通信——管道 216
9.1 进程间通信——PIPE 218
9.1.1 无名管道概念 218
9.1.2 无名管道文件操作的特殊性 218
9.1.3 文件描述符重定向 221
9.1.4 实现who|sort 225
9.1.5 流重定向 226
9.2 进程间通信——FIFO 228
9.2.1 有名管道概念 228
9.2.2 有名管道管理及其特殊性 228
9.2.3 管道基本特点总结 232
第10章 Linux异步信号处理机制 233
10.1 Linux常见信号与处理 234
10.1.1 信号与中断 234
10.1.2 信号基本概念 236
10.1.3 信号的生命周期 236
10.1.4 发送信号 237
10.2 安装信号与捕获信号 242
10.2.1 信号处理办法 242
10.2.2 signal安装信号 243
10.2.3 sigaction安装信号 244
10.2.4 signal的系统漏洞 248
10.3 安装信号与捕获信号 250
10.3.1 设置进程屏蔽信号集 250
10.3.2 获取当前未决的信号 251
10.3.3 信号集合操作 251
10.3.4 信号集合操作应用示例 252
10.4 等待信号 256
10.4.1 pause函数 256
10.4.2 sigsuspend函数 256
10.5 信号应用实例 258
第11章 System V进程间通信 261
11.1 System V IPC基础 263
11.1.1 key值和ID值 263
11.1.2 拥有者及权限 265
11.2 消息队列 265
11.2.1 消息队列IPC原理 265
11.2.2 Linux消息队列管理 267
11.2.3 消息队列应用实例 269
11.3 信号量通信机制 273
11.3.1 信号量IPC原理 273
11.3.2 Linux信号量管理操作 274
11.3.3 SEM_UNDO参数的应用 279
11.3.4 使用信号量实现生产消费问题 282
11.4 共享内存 285
11.4.1 共享内存IPC原理 285
11.4.2 Linux共享内存管理 286
11.4.3 共享内存的权限管理示例 287
11.4.4 共享内存处理应用示例 288
第12章 Linux多线程编程 293
12.1 线程基本概念与线程操作 294
12.1.1 线程与进程的对比 294
12.1.2 创建线程 295
12.1.3 线程退出与等待 297
12.1.4 取消线程 299
12.1.5 线程与私有数据 302
12.2 线程同步机制 305
12.2.1 互斥锁通信机制 305
12.2.2 条件变量通信机制 308
12.2.3 读写锁通信机制 314
12.3 多线程异步管理——信号 319
12.3.1 线程信号管理 319
12.3.2 线程信号应用实例 320
12.4 线程属性控制 322
12.4.1 获取线程ID 323
12.4.2 初始化线程属性对象 324
12.4.3 获取/设置线程detachstate属性 325
12.4.4 获取/设置线程栈相关属性 326
第13章 Linux Socket网络编程基础 328
13.1 网络通信基础 329
13.1.1 TCP/IP协议簇基础 329
13.1.2 IPv4协议基础 330
13.1.3 点分十进制IP地址与二进制IP地址转换 333
13.1.4 网络数据包封包与拆包过程 335
13.1.5 字节顺序与大小端问题 340
13.2 BSD Socket网络通信编程 344
13.2.1 BSD TCP通信编程流程 344
13.2.2 BSD Socket网络编程API 346
13.3 使用TCP实现简单聊天程序 351
13.3.1 服务器端代码分析 352
13.3.2 客户器端代码分析 354
13.4 网络调试工具 356
13.4.1 tcpdump的使用 356
13.4.2 netstat工具使用 359
13.4.3 lsof工具使用 360
第14章 TCP高级应用 362
14.1 文件I/O方式比较 363
14.2 I/O阻塞与非阻塞操作 364
14.2.1 阻塞与非阻塞基本概念 364
14.2.2 非阻塞应用示例 365
14.3 socket多路复用应用 368
14.3.1 select()与pselect函数介绍 368
14.3.2 poll与ppoll函数 370
14.3.3 多路复用应用示例 371
14.4 控制socket文件描述符属性 376
14.4.1 set/getsockopt()修改socket属性 376
14.4.2 fcntl控制socket 379
14.4.3 ioctl控制文件描述符 379
第15章 UDP网络编程应用 383
15.1 UDP网络编程基础 384
15.1.1 UDP网络通信流程 384
15.1.2 使用AF_INET实现UDP点对点通信示例 385
15.2 UDP广播通信 388
15.2.1 广播地址与广播通信 388
15.2.2 UDP广播通信示例 390
15.3 UDP组播通信 393
15.3.1 组播地址与组播通信 393
15.3.2 UDP组播应用示例 394
15.4 socket信号驱动 399
15.4.1 异步信号处理机制流程 399
15.4.2 信号驱动方式处理UDP数据 400
15.5 域名与IP信息解析 403
15.5.1 Linux下域名解析过程 403
15.5.2 通过域名返回主机信息 404
15.5.3 通过域名和IP返回主机信息 405
15.5.4 getaddrinfo获取主机信息 406
第16章 网络服务器应用设计 410
16.1 迭代服务器设计 411
16.1.1 xinetd服务介绍 411
16.1.2 时间服务器应用 412
16.2 多进程/多线程并发服务器设计 414
16.2.1 多进程实现多客户端 414
16.2.2 多线程实现多客户端 418
16.2.3 基于HTTP的多进程并发文件服务器 418
16.3 进程池/线程池服务器设计 428
16.3.1 进程池/线程池服务器模型 428
16.3.2 线程池文件服务器示例 431
第17章 本地通信与原始套接口 440
17.1 sock实现本地进程间通信 441
17.1.1 使用socket实现本地进程通信 441
17.1.2 使用AF_UNIX实现本机数据流 442
17.2 本地socket传递文件描述…符 445
17.2.1 sendmsg/recvmsg函数 446
17.2.2 传递文件描述符示例 446
17.3 原始套应用程序开发 450
17.3.1 原始套接口基本原理 450
17.3.2 原始套接口实现ping应用程序 450
17.3.3 原始套实现DOS攻击 456
第18章 音频应用程序开发基础 459
18.1 WAV音频文件格式分析 460
18.1.1 数字音频基本参数 460
18.1.2 WAV音频文件结构 460
18.1.3 读出WAV格式文件头信息 463
18.4.4 MP3文件格式 464
18.2 OSS音频设备编程 467
18.2.1 OSS音频设备基本架构 467
18.2.2 OSS音频编程应用示例 469
18.3 ALSA音频设备编程 474
18.3.1 ALSA基本架构 474
18.3.2 alsa-libs基本应用 476
18.3.3 ALSA音频编程示例 481
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《东北民歌文化研究及艺术探析》(中国)杨清波 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019