Linux C编程从入门到精通

978-7-115-33224-0
作者: 宋磊 程钢
译者:
编辑: 傅道坤

图书目录:

目 录

第 1章 Linux基础 1

1.1 Linux的起源、发展和分类 1

1.1.1 Linux的起源、特点和版本号 1

1.1.2 Linux的结构 4

1.1.3 Linux操作系统的分类 6

1.1.4 Linux中的几个术语 11

1.2 Linux的Shell 13

1.2.1 常见的Shell 13

1.2.2 Shell和终端 14

1.2.3 Shell的工作方式 14

1.2.4 Shell的启动 15

1.3 Shell的使用基础 15

1.3.1 Shell命令的标准格式 15

1.3.2 Shell的通配符 16

1.3.3 Shell中的引号 18

1.3.4 Shell中的注释符 19

1.4 Linux的常用命令 20

1.4.1 文件操作命令 20

1.4.2 目录操作命令 32

1.4.3 其他常用命令 37

第 2章 在Linux中编写C语言代码 45

2.1 Linux中C语言程序开发流程和工具介绍 45

2.1.1 C语言程序开发流程 45

2.1.2 C语言的开发工具 46

2.2 Linux中的C语言编译器gcc 46

2.2.1 gcc的安装 46

2.2.2 gcc的使用 47

2.3 Linux中的代码编辑器vim 51

2.3.1 启动与退出vim 51

2.3.2 vim的命令行模式 53

2.3.3 vim的插入模式 56

2.3.4 vim的底行模式 56

2.3.5 vim的应用实例 57

2.4 Linux中的调试环境gdb 59

2.4.1 gdb功能简介 60

2.4.2 gdb的调用 60

2.4.3 gdb运行模式的选择 62

2.4.4 gdb应用实例 63

第3章 Linux编程进阶 64

3.1 Linux如何执行一个程序 64

3.2 Linux的程序存储空间 66

3.3 Linux C的main函数 67

3.4 Linux 的出错处理 69

3.5 Linux C的标准输入和输出函数 73

3.5.1 标准输出函数printf 73

3.5.2 标准输入函数scanf 75

3.5.3 标准输入/输出函数应用实例 76

3.6 Linux C的内存分配 77

3.7 Linux C的系统调用和库函数 78

3.8 Linux 库函数的说明和应用实例 86

3.8.1 平方根函数 87

3.8.2 随机数产生函数 88

3.8.3 大小写字母测试函数 89

3.8.4 系统时间和日期函数 90

3.8.5 系统登录用户名操作函数 94

3.8.6 单字符输出函数 96

3.8.7 求“不大于”整数函数 97

3.8.8 “拆分”浮点数函数 98

3.8.9 字符串转换函数 99

3.8.10 字符串复制函数 101

3.8.11 字符串长度计算函数 102

3.8.12 字符串连接函数 103

3.8.13 字符串复制函数 104

3.8.14 字符串比较函数 106

3.8.15 字符串查找函数 107

3.8.16 内存分配函数 109

3.8.17 内存映射函数 110

第4章 Linux的文件编程 114

4.1 Linux文件系统简介 114

4.1.1 Linux文件系统基础 115

4.1.2 Linux文件类型介绍 120

4.2 Linux的基本文件操作函数 124

4.2.1 打开文件函数 124

4.2.2 关闭文件函数 127

4.2.3 创建文件函数 129

4.2.4 写文件函数 130

4.2.5 文件偏移定位函数 131

4.2.6 读文件函数 134

4.3 Linux的高级文件操作函数 136

4.3.1 文件状态操作函数 136

4.3.2 时间相关函数 138

4.3.3 文件的访问权限说明 141

4.3.4 测试文件访问权限函数 142

4.3.5 umask函数 144

4.3.6 chmod函数和fchmod函数 146

4.3.7 rename函数 148

4.3.8 文件的其他高级操作函数 150

4.4 目录文件操作 155

4.4.1 mkdir和rmdir函数 155

4.4.2 chdir、fchdir和getcmd函数 158

4.4.3 opendir、closedir和readdir函数 160

第5章 Linux的流编程 166

5.1 Linux流操作的基础 166

5.1.1 流和文件的关系 166

5.1.2 流的结构和操作流程 168

5.1.3 标准流介绍 169

5.2 流的打开和关闭 169

5.3 流的缓冲方式和缓冲区设置 172

5.3.1 流的缓冲方式 172

5.3.2 流的缓冲区设置方式 175

5.4 流的读写 178

5.4.1 字符读写 178

5.4.2 行读写 180

5.4.3 二进制读写 182

5.4.4 流的出错处理 185

5.4.5 流的冲洗 186

5.5 流的定位 187

5.5.1 ftell和fseek函数 187

5.5.2 ftello和fseeko函数 189

5.5.3 fgetpos和fsetpos函数 190

5.6 流的格式化输出和输入 191

5.6.1 格式化输出 192

5.6.2 格式化输入 192

5.6.3 格式化参数 193

5.6.4 格式化输入输出应用实例 197

5.7 临时文件 198

第6章 Linux的进程 202

6.1 Linux进程基础 202

6.1.1 Linux进程及其执行过程 202

6.1.2 Linux进程的描述符和标识符 205

6.1.3 Linux进程的用户 208

6.1.4 Linux进程的调度 209

6.1.5 Linux中进程执行的流程 209

6.2 Linux的进程控制 210

6.2.1 进程的创建 211

6.2.2 进程的执行 220

6.2.3 进程的退出 227

6.2.4 进程的销毁 229

6.3 Linux进程的其他操作 234

6.3.1 更改用户ID和组ID 234

6.3.2 进程组、会话和特性 236

6.3.3 system函数 241

6.3.4 进程会计 243

6.3.5 进程时间 245

第7章 Linux的线程 251

7.1 Linux线程基础 251

7.1.1 线程的运行方式 251

7.1.2 线程的标识符 252

7.1.3 用户态线程和核心态线程 253

7.1.4 编译带线程的代码 253

7.2 线程的操作 254

7.2.1 线程的创建 254

7.2.2 线程的退出 256

7.2.3 线程的阻塞 258

7.2.4 线程的取消和清理 261

7.2.5 线程分离 265

7.2.6 函数比较 266

7.3 线程的私有数据处理 267

7.3.1 创建键函数 267

7.3.2 取消键关联函数 268

7.3.3 解决键冲突函数 268

7.3.4 键关联函数 268

7.3.5 线程私有数据地址获取函数 269

7.3.6 私有数据处理应用实例 269

7.4 线程的属性 271

7.4.1 线程属性对象的初始化和销毁函数 271

7.4.2 线程堆栈大小相关函数 272

7.4.3 线程堆栈地址函数 272

7.4.4 线程的拆卸状态函数 272

7.4.5 线程的作用域函数 273

7.4.6 线程的继承调度函数 273

7.4.7 线程的调度策略函数 274

7.4.8 线程的调度参数函数 274

7.4.9 线程属性应用实例 275

7.5 线程的同步方式 277

7.5.1 互斥锁 277

7.5.2 条件变量 281

第8章 Linux的信号和进程间通信 287

8.1 Linux的进程通信和信号基础 287

8.1.1 Linux的进程通信 287

8.1.2 信号机制和信号 288

8.1.3 信号的工作方式 290

8.1.4 Linux中的信号说明 291

8.1.5 信号的注册 294

8.1.6 可重入函数 303

8.2 信号的基础操作 305

8.2.1 发送信号 305

8.2.2 信号的定时 311

8.2.3 进程退出信号 314

8.3 Linux的信号集 315

8.4 信号的阻塞和挂起 317

第9章 Linux的管道、命名管道和进程间通信 320

9.1 Linux的管道基础 320

9.1.1 管道的基本概念 320

9.1.2 管道的实现方法 321

9.1.3 管道读写操作规则 323

9.1.4 管道的特点 323

9.2 Linux的管道操作 324

9.2.1 管道的创建和应用 324

9.2.2 管道的高级操作函数 333

9.3 Linux命名管道基础 335

9.3.1 使用命名管道 336

9.3.2 命名管道的常用工作方式 337

9.3.3 命名管道的打开和读写 339

9.4 Linux命名管道的操作 341

9.4.1 命名管道的创建 341

9.4.2 命名管道的读写 342

第 10章 Linux的System V IPC进程通信 347

10.1 Linux的System V IPC进程通信基础 347

10.1.1 System V IPC的操作函数 347

10.1.2 System V IPC的标识符和关键字 348

10.1.3 ipc_perm的结构和权限 350

10.1.4 创建System V IPC对象过程 352

10.1.5 System V IPC的缺点 352

10.1.6 System V IPC的操作命令 354

10.2 消息队列 355

10.2.1 消息队列基础 355

10.2.2 创建消息队列 357

10.2.3 消息队列的发送和接收 359

10.2.4 消息队列的控制 364

10.3 信号量 367

10.3.1 信号量基础 368

10.3.2 信号量的相关函数 370

10.3.3 信号量的应用 374

10.4 共享内存 377

10.4.1 共享内存基础 377

10.4.2 共享内存的相关操作 378

10.4.3 共享内存的应用实例 382

详情

本书是一本由浅入深、循序渐进地讲解Linux系统使用和开发的教程,包括Linux基础、在Linux中编写C语言代码、Linux编程进阶、Linux的文件编程、Linux的流编程、Linux的进程、Linux的线程、Linux的信号和进程间通信、Linux的管道、命名管道和进程间通信、Linux的System V IPC进程通信等10个章节。

图书摘要

相关图书

代码审计——C/C++实践
代码审计——C/C++实践
C/C++代码调试的艺术(第2版)
C/C++代码调试的艺术(第2版)
大规模C++软件开发 卷1:过程与架构
大规模C++软件开发 卷1:过程与架构
C/C++程序设计竞赛真题实战特训教程(图解版)
C/C++程序设计竞赛真题实战特训教程(图解版)
C/C++函数与算法速查宝典
C/C++函数与算法速查宝典
C程序设计教程(第9版)
C程序设计教程(第9版)

相关文章

相关课程