图书介绍

Linux高级程序设计 第3版PDF|Epub|txt|kindle电子书版本网盘下载

Linux高级程序设计 第3版
  • 杨宗德,吕光宏,刘雍编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115292902
  • 出版时间:2012
  • 标注页数:486页
  • 文件大小:296MB
  • 文件页数:498页
  • 主题词:Linux操作系统-程序设计

PDF下载


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

下载说明

Linux高级程序设计 第3版PDF格式电子书版下载

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

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

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

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

图书目录

第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图形化工具Valkyrie61

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 文件控制fcntl107

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 进程间通信——PIPE218

9.1.1 无名管道概念218

9.1.2 无名管道文件操作的特殊性218

9.1.3 文件描述符重定向221

9.1.4 实现who|sort225

9.1.5 流重定向226

9.2 进程间通信——FIFO228

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 获取线程ID323

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网络编程API346

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控制socket379

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

热门推荐