当前位置:首页 > 工业技术
Linux高级程序设计
Linux高级程序设计

Linux高级程序设计PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:杨宗德,邓玉春编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115213907
  • 页数:432 页
图书介绍:本书以2.6内核的Linux操作系统为开发平台、GCC 4.0/GDB 6.3为开发调试环境,详细介绍了Linux下内存管理、文件及目录管理、进程管理、UNIX进程间通信机制、线程间通信机制和Linux Socket网络编程相关内容及实例开发。
上一篇:钢和铸铁的等谩淬火下一篇:制鞋工
《Linux高级程序设计》目录

第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 strace 45

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

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

8.1.1无名管道概念 212

8.1.2无名管道管理及应用 212

8.1.3文件描述符重定向 215

8.1.4实现who|sort 218

8.1.5流重定向 220

8.2进程间通信—FIFO 221

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线程ID 298

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

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和主机ID 365

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控制socket 374

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

相关图书
作者其它书籍
返回顶部