《LINUX高级程序设计》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:罗怡桂编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2014
  • ISBN:9787040409581
  • 页数:262 页
图书介绍:本书分十一章阐述了Linux环境下的高级编程技术:Linux编程基础、文件及目录的操作、标准输入输出及系统信息的处理、进程及进程的控制、信号、高级IO、进程间的通信、服务进程、多进程的综合控制、多线程编程、综合案例习题。本书内容选择精要,体现了Linux高级编程人员必备的技术要求。本书阐述由浅入深,循序渐进。本书配套程序可从网站http:www.skyenest.com/edu/linux_program/上下载,可边做边学,具有很强的实践性。第11章的综合案例习题可以以小组的方式进行开发实践。本书可以作为本科生或研究生的Linux编程技术课程的教材,也可以作为Linux编程技术人员的参考书。

第1章 Linux编程基础 1

1.1 Linux的演化 1

1.1.1 UNIX时代 1

1.1.2 从UNIX到Linux 1

1.2 Linux编程环境 2

1.2.1 程序编辑器 2

1.2.2 程序编译器gcc 2

1.3 常用调试工具 3

1.3.1 gdb 3

1.3.2 mtrace 3

1.3.3 hook 5

1.3.4 Binutil工具集 7

1.4 GNU编程风格 7

本章小结 8

习题 8

第2章 文件与目录的操作 9

2.1 Linux文件系统概述 9

2.1.1 文件及文件系统 9

2.1.2 文件描述符 13

2.1.3 用户标识与用户组标识 14

2.1.4 硬连接与符号连接 15

2.2 文件的基本操作 17

2.2.1 文件的打开与共享 17

2.2.2 文件的创建与关闭 18

2.2.3 文件的定位 19

2.2.4 文件内容的读取 20

2.2.5 文件内容的写入 21

2.3 文件属性的获取与改变 22

2.4 文件访问权限及其操作 26

2.4.1 设置文件权限屏蔽码 28

2.4.2 改变用户的操作模式 29

2.4.3 改变文件的所有者 30

2.4.4 验证实际用户对文件的操作权限 30

2.5 文件的删除与重命名 31

2.6 文件的同步 35

2.7 文件的其他操作 37

2.7.1 文件描述符的复制 37

2.7.2 获取、改变文件的时间信息 37

2.7.3 目录的创建、删除与读取 39

2.7.4 相对于路径的文件操作 41

本章小结 41

习题 42

第3章 标准输入输出及系统信息 43

3.1 标准输入输出 43

3.1.1 流与FILE指针 43

3.1.2 缓存 44

3.1.3 打开、关闭流 46

3.1.4 流的读写 46

3.1.5 流的定位 49

3.1.6 格式化输入输出 49

3.1.7 创建临时文件 50

3.2 获取或设置系统信息 50

3.3 获取或设置系统时间 51

3.4 文件系统设置 53

3.5 获取与设置磁盘配额 55

3.6 其他系统操作函数 58

本章小结 60

习题 60

第4章 进程及进程的控制 61

4.1 进程及进程运行环境 61

4.1.1 进程标识与进程的状态 61

4.1.2 进程的开始与终结 62

4.1.3 内存空间分布 63

4.1.4 环境变量 64

4.1.5 操作能力设置 64

4.1.6 获取、设置进程资源限制 66

4.2 函数间的直接跳转 67

4.3 创建子进程 72

4.3.1 fork函数 72

4.3.2 vfork函数 77

4.3.3 clone函数 77

4.4 父进程等待子进程 80

4.5 在进程中执行另一个程序 82

4.5.1 exec系列函数 82

4.5.2 关于close_on_exec 83

4.6 设置与读取用户标识 86

4.7 进程记账 87

4.8 获取当前进程的时间 93

4.9 进程的跟踪 96

4.10 进程的组织 100

4.10.1 进程组 100

4.10.2 会话 100

本章小结 105

习题 105

第5章 信号 106

5.1 信号处理概述 106

5.2 信号处理的上下文 107

5.3 信号的编程模式 115

5.4 信号与信号处理函数的关联 116

5.4.1 sigaction函数 116

5.4.2 signal函数 119

5.5 发送信号 120

5.5.1 发送信号的原因 120

5.5.2 在内核中信号的发送 122

5.5.3 kill、raise函数 124

5.5.4 sigqueue函数 126

5.5.5 alarm函数 128

5.6 信号的处理 129

5.6.1 内核中信号的处理 129

5.6.2 获知当前未决信号 131

5.6.3 sigsetjmp与siglongjmp函数 131

5.6.4 信号处理函数的可重入性 131

5.6.5 sleep函数 132

5.7 信号的屏蔽 132

5.7.1 sigprocmask函数 132

5.7.2 sigsuspend函数 136

5.8 实时信号与普通信号 139

5.9 使用信号同步进程 145

5.10 获取或设置信号处理函数的堆栈信息 151

本章小结 155

习题 155

第6章 高级I/O 157

6.1 非阻塞I/O 157

6.2 记录锁 157

6.3 I/O复用 163

6.3.1 select与pselect函数 163

6.3.2 poll函数、ppoll函数与epoll系列函数 167

6.4 异步I/O 170

6.5 readv与writev函数 174

6.6 内存映射I/O 175

6.7 文件或目录的访问通知机制 177

6.7.1 dnotify 177

6.7.2 inotify 180

本章小结 186

习题 187

第7章 进程之间的通信 188

7.1 管道 188

7.2 FIFO 191

7.3 System V进程间的通信机制 193

7.3.1 消息队列 193

7.3.2 信号量集合 199

7.3.3 共享内存 202

7.4 Posix信号量 207

本章小结 214

习题 214

第8章 服务进程 215

8.1 服务进程的编程模式 215

8.2 服务进程的参数设置与日志 216

本章小结 218

习题 218

第9章 多进程的综合控制 219

9.1 内核的调度算法 219

9.2 从Linux 2.4调度算法到Linux2.6 O(1)调度算法 220

9.3 Linux 2.6 O(1)调度算法分析 221

9.3.1 静态优先级 223

9.3.2 动态优先级 223

9.3.3 时间片的计算 224

9.3.4 休眠进程与唤醒进程 225

9.3.5 调度的时机 225

9.3.6 Linux 2.6 O(1)调度算法中CPU的负载平衡 226

9.3.7 调度策略 227

9.4 Linux应用程序中对进程调度的控制 227

9.4.1 内核参数调优 227

9.4.2 多进程组织 228

9.4.3 进程的调度控制 228

9.4.4 进程调度操作权限 234

9.4.5 进程控制的其他操作 234

本章小结 239

习题 239

第10章 多线程编程 240

10.1 线程与线程的实现方式 240

10.2 线程应用的基本操作 241

10.3 线程数据 243

10.4 线程中的信号处理 245

10.5 安全创建子进程 249

10.6 线程之间的互斥 251

10.7 线程应用的其他操作 255

本章小结 256

习题 257

综合案例习题 258

参考文献 262