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

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

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:杨宗德,邓玉春等编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2008
  • ISBN:7115171696
  • 页数:408 页
图书介绍:本书以2.6内核的Linux操作系统为开发平台、GCC4.0/GDB6.3为开发调试环境,详细介绍了Linux下C语言开发环境、C开发工具、内存管理、ANSI C文件I/O管理、POSIX文件I/O管理、文件及目录管理、进程管理、UNIX进程间通信机制、System V进程间通信、多线程编程、线程间通信机制和Linux socket网络编程相关内容及实例开发。本书内容丰富、紧扣应用,所列代码和实例都来源于具体的应用程序。本书适合从事Linux系统编程工作的人员阅读,也适合从事嵌入式Linux开发的人员阅读。
《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.2.5 Linux应用程序示例 11

1.3 Linux内核及库文件管理 12

1.3.1 Linux内核目录结构 13

1.3.2 使用Linux系统库文件 14

1.3.3 创建静态库和共享库 17

1.4 Linux下编码风格 19

1.4.1 GNU编码规范 19

1.4.2 Linux内核编码规范 20

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

2.1 Linux开发的基本工具 24

2.1.1 Vim编辑器 24

2.1.2 Emacs编辑器 26

2.1.3 tar打包器 27

2.1.4 Linux编程常用命令及工具 28

2.2 GCC/G++编译器 36

2.2.1 GCC/G++简介 36

2.2.2 Glibc库 43

2.2.3 GCC不同编译选项对程序的影响 45

2.3 make工具及makefile文件 49

2.3.1 make工具简介 49

2.3.2 makefile常用规则 52

2.4 GDB调试工具 54

2.4.1 GDB调试工具简介 54

2.4.2 GDB演示示例 55

2.4.3 GDB调试器常用语法 56

2.5 GCC程序开发过程实例 58

2.6 自动编译调试工具 61

2.6.1 Autoconf/Automake工具组简介 61

第3章 内存管理及相关工具 69

3.1 内存管理基本概念 70

3.1.1 C程序内存分配 70

3.1.2 栈和堆的区别 72

3.1.3 Linux数据类型大小 73

3.1.4 数据存储区域实例 75

3.2 内存管理函数 77

3.2.1 malloc/free函数 77

3.2.2 realloc——更改已经配置的内存空间 80

3.2.3 其他内存管理函数calloc和alloca 82

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

3.3.1 mcheck函数 83

3.3.2 Valgrind内存检测工具 84

第4章 ANSIC文件管理 89

4.1 文件基本概念及文件指针 90

4.1.1 文件基本概念 90

4.1.2 文件指针 91

4.2 ANSIC标准文件I/O操作 93

4.2.1 缓冲区类型 93

4.2.2 打开关闭文件 96

4.2.3 读写文件流 98

4.2.4 文件流定位 102

4.2.5 格式化输入输出函数 103

第5章 POSIX标准文件I/O管理 107

5.1 Linux系统下文件类型及属性 108

5.1.1 Linux文件模式 108

5.1.2 Linux文件类型 108

5.1.3 文件权限修饰位 111

5.1.4 文件访问权限位 112

5.1.5 文件描述符 113

5.2 POSIX标准下文件I/O管理 114

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

5.2.2 文件控制fcntl 117

5.2.3 lockf文件控制 121

5.2.4 锁定/解锁文件flock 122

5.2.5 读/写文件内容 124

5.2.6 文件定位 127

第6章 Linux文件管理及目录操作 129

6.1 Linux文件系统管理 130

6.1.1 Linux下VFS虚拟文件系统 130

6.1.2 ext2文件系统结构 131

6.1.3 超级块结构 131

6.1.4 dentry结构 132

6.1.5 Inode块 133

6.1.6 数据块及文件 135

6.2 Linux文件及目录管理操作 136

6.2.1 读取文件属性 136

6.2.2 修改文件权限操作 138

6.2.3 修改掩码umask 140

6.2.4 修改文件的拥有者及组 141

6.2.5 添加删除目录 142

6.2.6 连接文件管理 142

6.2.7 当前目录操作 143

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

7.1 进程环境及进程属性 148

7.1.1 程序及进程环境 148

7.1.2 进程的基本属性 149

7.2 Linux进程控制 153

7.2.1 创建进程 153

7.2.2 运行新进程 158

7.2.3 等待进程结束 160

7.2.4 退出进程 166

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

7.2.6 复制进程 172

7.3 Linux进程调度 173

7.3.1 进程状态 173

7.3.2 Linux常用调度算法 174

7.3.3 调度管理函数 176

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

8.1 进程通信——无名管道 184

8.1.1 无名管道概念 184

8.1.2 无名管道管理及应用 184

8.2 进程通信——有名管道FIFO 190

8.2.1 有名管道概念 190

8.2.2 有名管道管理及应用 191

8.3 信号中断处理 194

8.3.1 信号的基本概念 194

8.3.2 信号基本操作及应用 197

第9章 System V进程间通信 209

9.1 System VIPC基础 210

9.1.1 key值和ID值 210

9.1.2 拥有者及权限 211

9.2 消息队列 212

9.2.1 消息队列IPC原理 212

9.2.2 Linux消息队列管理 214

9.2.3 消息队列应用实例 217

9.3 信号量通信机制 220

9.3.1 信号量IPC原理 220

9.3.2 Linux信号量管理操作 221

9.3.3 信号量应用实例 226

9.4 共享内存 229

9.4.1 共享内存IPC原理 229

9.4.2 Linux共享内存管理 231

9.4.3 共享内存处理应用示例 233

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

第10章 Linux多线程编程 239

10.1 Linux线程概述 240

10.1.1 线程基本概念 240

10.1.2 线程基本应用概述 240

10.1.3 进程/线程应用对比 243

10.2 Linux线程基本操作 244

10.2.1 创建线程 244

10.2.2 退出线程 245

10.2.3 等待线程 245

10.2.4 取消线程 246

10.2.5 线程基本操作应用实例 247

10.3 线程属性控制 249

10.3.1 初始化线程属性对象 250

10.3.2 获取/设置线程属性 251

10.3.3 线程属性控制实例 255

10.4 线程调度 257

10.4.1 调度策略基本概念 257

10.4.2 调度策略管理 258

10.4.3 线程调度策略示例程序 259

第11章 线程间通信机制 263

11.1 互斥锁通信机制 264

11.1.1 互斥锁基本原理 264

11.1.2 初始化或损坏互斥锁 265

11.1.3 锁定/非阻塞锁定一个互斥锁 266

11.1.4 解锁互斥锁 267

11.1.5 初始化或破坏互斥锁属性对象 267

11.1.6 互斥锁使用范围 268

11.1.7 互斥锁kind属性设置 269

11.1.8 互斥锁应用实例 269

11.2 条件变量通信机制 271

11.2.1 条件变量基本原理 271

11.2.2 初始化或损坏条件变量 273

11.2.3 取消阻塞一个或所有等待条件变量的线程 274

11.2.4 等待或定时等待条件变量 274

11.2.5 初始化或破坏条件变量属性对象 276

11.2.6 读取/设置条件变量争用范围 277

11.2.7 条件变量应用实例 277

11.3 读写锁通信机制 281

11.3.1 读写锁基本原理 281

11.3.2 初始化或损坏读写锁 282

11.3.3 解除读写锁定 283

11.3.4 锁定或非阻塞锁定用于读取的读写锁 283

11.3.5 锁定或非阻塞锁定用于写入的读写锁 284

11.3.6 初始化或破坏读写锁定属性对象 284

11.3.7 读写锁属性设置 285

11.3.8 读写锁应用实例 286

11.4 线程信号量 289

11.4.1 线程信号量基本原理 289

11.4.2 无名线程信号量管理 291

11.4.3 无名线程信号量应用实例 293

11.4.4 命名线程信号量管理 296

11.5 线程信号 299

11.5.1 线程信号管理 299

11.5.2 示例程序 300

第12章 Linux Socket网络编程 303

12.1 网络通信基础 304

12.1.1 TCP/IP协议簇基础 304

12.1.2 IPV4基础 305

12.1.3 IP数据包头 307

12.1.4 TCP数据包头 309

12.1.5 UDP数据包头 311

12.2 Socket通信基本概念及过程 312

12.2.1 Socket对象实现 312

12.2.2 面向连接的Socket通信实现 314

12.2.3 面向无连接的Sockek通信实现 320

12.3 面向连接的TCP套接字编程实例 322

12.3.1 使用AF UNIX实现本机数据流通信 322

12.3.2 使用AF INET实现数据流通信 325

12.4 面向无连接的UDP套接字编程实例 328

12.5 其他Socket API应用编程 331

12.5.1 socketpair实现本地进程间通信 331

12.5.2 获取/设置socket状态 333

12.5.3 获取网络主机条目 334

12.5.4 获取服务条目 338

12.5.5 获取/设置或结束协议条目 339

12.5.6 地址转换管理操作 340

12.5.7 地址操作例行程序 341

附录A GCC参数说明 343

附录B gdb命令手册 367

附录C vim参考手册 383

附录D Emacs编辑器 395

附录E CVS服务器配置 401

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