图书介绍

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

Linux高级程序设计
  • 杨宗德,邓玉春编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115213907
  • 出版时间:2009
  • 标注页数:432页
  • 文件大小:177MB
  • 文件页数:445页
  • 主题词:Linux操作系统-程序设计

PDF下载


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

下载说明

Linux高级程序设计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在线文档介绍9

1.2.4获取错误信息10

1.3部分常用工具简介11

1.3.1 tar打包器11

1.3.2 Linux常用命令及工具12

1.4 Linux下编码风格16

1.4.1 GNU编码规范16

1.4.2 Linux内核编码规范17

第2章 Linux下C语言开发工具20

2.1常用编辑工具22

2.1.1 VIM编辑器22

2.1.2 Emacs编辑器24

2.1.3 Source Insight工具25

2.2 GCC编译工具29

2.2.1 GCC/G++简介30

2.2.2头文件及预处理结果分析34

2.3 Make工具与Makefile文件36

2.3.1 Make工具简介36

2.3.2 Makefile常用规则39

2.4常用调试工具41

2.4.1 GDB调试工具简介41

2.4.2 GDB演示示例42

2.4.3 GDB调试器常用语法43

2.4.4 strace45

2.4.5 GCC程序开发过程实例46

2.5 Linux库文件使用与创建49

2.5.1 Linux系统库文件管理的基本策略49

2.5.2 Linux下静态库的创建与使用50

2.5.3 Linux下共享库创建及使用52

2.5.4静态库与共享库的区别54

2.6 Autoconf/Automake自动化工具54

2.6.1 Autoconf/Automake工具介绍54

2.6.2 Autoconf/Automake工具使用示例55

第3章 Linux进程存储管理61

3.1 Linux程序存储结构与进程结构62

3.1.1 Linux可执行文件结构62

3.1.2 Linux进程结构63

3.1.3 C变量及函数存储类型64

3.1.4栈和堆的区别69

3.1.5示例:查看代码中各数据存储位置70

3.1.6常见内存错误示例分析73

3.2 ANSI C内存管理API函数74

3.2.1内存分配的基本方式74

3.2.2示例:为程序申请动态内存空间74

3.2.3内存数据管理函数78

3.3常用Linux内存管理及调试工具80

3.3.1 mcheck函数80

3.3.2 Valgrind内存检测工具82

3.4 Linux进程环境及系统限制85

3.4.1进程与命令参数85

3.4.2进程与环境变量90

3.4.3 Linux系统限制91

3.4.4 Linux时间管理93

第4章 ANSI C文件管理96

4.1文件及文件流98

4.1.1文件与流的基本概念98

4.1.2标准流及流主要功能99

4.1.3文件流指针100

4.1.4缓冲区类型101

4.1.5指定流缓冲区103

4.2 ANSI C标准文件I/O操作105

4.2.1打开关闭文件105

4.2.2读写文件流107

4.2.3文件流定位111

4.2.4实现文件拷贝操作示例113

4.3格式化输入/输出函数操作114

4.3.1 printf/scanf函数分析114

4.3.2 fprintf/fscanf函数分析115

4.3.3 sprintf函数分析116

4.3.4 sscanf函数分析118

第5章 POSIX文件及目录管理121

5.1文件描述符与内核文件表项122

5.1.1文件流与文件描述符的区别122

5.1.2文件表结构图123

5.1.3文件描述符与文件流的转换操作123

5.2 POSIX标准下文件IO管理125

5.2.1创建/打开/关闭文件126

5.2.2文件控制fcntl129

5.2.3读/写文件内容131

5.2.4使用POSIX IO实现文件拷贝133

5.2.5文件定位134

5.2.6同步内核缓冲区135

5.2.7映射文件到内存136

5.3目录文件基本操作137

5.3.1打开/关闭目录文件138

5.3.2读写目录内容138

5.3.3定位目录位置140

5.3.4添加删除目录140

5.3.5当前工作路径操作141

第6章 普通文件、连接文件及目录文件属性管理143

6.1 Linux文件系统管理144

6.1.1 Linux下VFS虚拟文件系统144

6.1.2 ext2文件系统结构145

6.1.3目录文件及常规文件存储方法147

6.2 Linux系统下文件类型及属性147

6.2.1 Linux文件类型及权限147

6.2.2 Linux文件类型148

6.2.3文件权限修饰位151

6.2.4文件访问权限位152

6.3 Linux文件属性管理153

6.3.1读取文件属性153

6.3.2修改文件权限操作156

6.3.3修改系统umask值157

6.3.4修改文件的拥有者及组158

6.3.5用户名/组名与UID/GID的转换159

6.3.6创建/删除硬连接160

6.3.7符号连接文件特殊操作161

6.3.8文件时间属性修改与时间处理162

6.4应用示例:实现ls-l基本操作164

6.4.1需求及知识点涵盖164

6.4.2流程及源代码实现164

第7章 Linux进程管理与程序开发169

7.1进程环境及进程属性170

7.1.1进程资源170

7.1.2进程状态170

7.1.3进程基本属性172

7.1.4进程用户属性176

7.2进程管理及控制179

7.2.1创建进程179

7.2.2在进程中运行新代码185

7.2.3等待进程结束189

7.2.4退出进程191

7.2.5修改进程用户相关信息194

7.2.6进程调度管理函数197

7.3 Linux特殊进程202

7.3.1守候进程及其创建过程202

7.3.2日志信息及其管理203

7.3.3守候进程应用示例205

7.3.4孤儿进程与僵死进程207

第8章 进程间通信—管道和信号210

8.1进程间通信—PIPE212

8.1.1无名管道概念212

8.1.2无名管道管理及应用212

8.1.3文件描述符重定向215

8.1.4实现who|sort218

8.1.5流重定向220

8.2进程间通信—FIFO221

8.2.1有名管道概念221

8.2.2有名管道管理及应用222

8.2.3管道基本特点总结225

8.3信号中断处理226

8.3.1 Linux常见信号与处理226

8.3.2产生信号229

8.3.3信号处理与signal安装信号233

8.3.4 sigaction安装信号234

8.3.5信号集与屏蔽信号238

8.3.6等待信号244

8.3.7信号应用示例246

第9章 System V进程间通信250

9.1 System VIPC基础252

9.1.1 key值和ID值252

9.1.2拥有者及权限254

9.2消息队列254

9.2.1消息队列IPC原理254

9.2.2 Linux消息队列管理257

9.2.3消息队列应用实例259

9.3信号量通信机制264

9.3.1信号量IPC原理264

9.3.2 Linux信号量管理操作265

9.3.3 SEM_UNDO参数的应用270

9.3.4使用信号量实现生产消费问题272

9.4共享内存275

9.4.1共享内存IPC原理275

9.4.2 Linux共享内存管理276

9.4.3共享内存的权限管理示例278

9.4.4共享内存处理应用示例279

9.4.5共享内存处理应用示例281

第10章 Linux多线程编程285

10.1线程基本概念与线程操作286

10.1.1线程与进程的对比286

10.1.2创建线程287

10.1.3线程退出与等待288

10.1.4取消线程291

10.1.5线程与私有数据294

10.2线程属性控制297

10.2.1线程ID298

10.2.2初始化线程属性对象298

10.2.3获取/设置线程detachstate属性299

10.2.4获取/设置线程栈相关属性300

10.2.5线程属性控制实例301

10.3线程调度策略303

10.3.1获取/设置线程属性调度属性303

10.3.2获取/设置指定线程调度属性305

第11章 线程间同步机制309

11.1互斥锁通信机制310

11.1.1互斥锁基本原理310

11.1.2互斥锁基本操作310

11.1.3互斥锁应用实例311

11.2条件变量通信机制313

11.2.1条件变量基本原理313

11.2.2条件变量基本操作315

11.2.3条件变量应用实例316

11.3读写锁通信机制320

11.3.1读写锁基本原理320

11.3.2读写锁基本操作320

11.3.3读写锁应用实例322

11.4线程与信号325

11.4.1线程信号管理325

11.4.2线程信号应用实例326

第12章 Linux socket网络编程329

12.1网络通信基础330

12.1.1 TCP/IP协议簇基础330

12.1.2 IPV4协议基础331

12.1.3网络数据包封包与拆包过程334

12.2 BSD Socket网络通信编程339

12.2.1 BSD TCP通信编程流程339

12.2.2 BSD UDP通信编程流程341

12.2.3 BSD Socket网络编程API342

12.2.4使用AF_UNIX实现本机数据流通信示例349

12.2.5使用AF_INET实现UDP点对点通信示例352

12.3使用TCP实现简单聊天程序354

12.3.1服务器端代码分析355

12.3.2客户器端代码分析357

第13章 网络编程工具介绍359

13.1地址处理函数说明360

13.1.1大小端问题与网络字节顺序360

13.1.2字节顺序处理函数361

13.1.3点分十进制IP地址与二进制IP地址转换363

13.1.4通过IP地址获取网络ID和主机ID365

13.2域名与IP信息解析365

13.2.1 Linux下域名解析过程365

13.2.2通过域名返回主机信息366

13.2.3通过域名和Ip返回主机信息367

13.2.4 getaddrinfo获取主机信息368

13.3控制socket文件描述符属性371

13.3.1 set/getsockopt()修改socket属性371

13.3.2 fcntl控制socket374

13.3.3 ioctl控制文件描述符374

13.4网络调试工具377

13.4.1 tcpdump的使用378

13.4.2 netstat工具使用380

13.4.3 lsof工具使用381

第14章 网络编程高级应用383

14.1 I/O阻塞与非阻塞操作应用384

14.1.1非阻塞处理方法384

14.1.2非阻塞应用示例384

14.2 socket多路复用技术388

14.2.1 select()函数介绍388

14.2.2 pselect()函数390

14.2.3多路选择应用示例390

14.3 socket信号驱动396

14.3.1各类I/O操作比较396

14.3.2 SIGIO信号处理机制397

14.3.3 UDP信号驱动实现应用示例398

14.4 UDP广播与组播通信401

14.4.1广播地址与广播通信401

14.4.2组播地址与组播通信403

14.4.3 UDP广播应用示例404

14.4.4 UDP组播应用示例407

14.5原始套接口基本应用412

14.5.1原始套接口基本原理412

14.5.2原始套接口应用示例412

第15章 构建网络服务器415

15.1多客户端实现416

15.1.1多进程实现多客户端416

15.1.2多线程实现多客户端420

15.2基于xinetd的网络服务应用420

15.2.1 xinetd服务介绍421

15.2.2应用示例422

15.3构建简单的HTTP网络服务器423

15.3.1服务器运行及测试结果424

15.3.2主函数运行流程425

15.3.3支撑函数427

热门推荐