注册 登录 进入教材巡展
#

出版时间:2026-05

出版社:电子工业出版社

以下为《Linux系统程序设计教程(第2版)》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 电子工业出版社
  • 9787121526657
  • 1-1
  • 16开
  • 2026-05
  • 494
  • 工学
  • 计算机类
  • 计算机科学与技术
  • 本科
内容简介
本书基于Linux内核,以Ubuntu Linux平台为例,介绍Linux系统程序设计的基础知识,为准备学习Linux系统程序开发的初学者提供方便快捷的途径。 全书共12章。第1章介绍Linux系统的基本使用方法;第2章介绍Linux平台下进行C语言开发需要的各种工具;第3章介绍Linux平台下常用的编程基础知识;第4~6章介绍文件、文件属性、目录文件相关的编程理论和方法;第7、8章介绍进程和线程的编程方法;第9~11章介绍信号、管道、信号量、共享内存、消息队列、套接字6种进程间通信方式;第12章介绍两个贯穿本书大多数知识点的综合案例。
目录
第1章 Linux基础 1
1.1 UNIX/Linux简介 1
1.1.1 UNIX简介 1
1.1.2 UNIX体系结构 2
1.1.3 Linux简介 2
1.1.4 Linux版本说明 3
1.1.5 Linux特点 4
1.2 库函数与系统调用 5
1.3 Linux常用命令 6
1.3.1 用户和用户组命令 6
1.3.2 文件和目录命令 8
1.3.3 进程命令 10
1.3.4 获取帮助信息 11
1.4 案例1:通过SSH终端登录Linux系统 13
1.4.1 分析与设计 13
1.4.2 实施 13
1.4.3 运行 17
习题 19
第2章 Linux系统开发环境 21
2.1 Vim编辑器 21
2.1.1 Vim编辑器的工作模式 21
2.1.2 Vim编辑器的基本用法 22
2.1.3 Vim编辑器的高级用法 23
2.2 GCC编译器 24
2.2.1 GCC编译器介绍 24
2.2.2 GCC编译器基本用法 25
2.3 Makefile文件的使用 28
2.3.1 Makefile文件 28
2.3.2 Makefile文件的命名 29
2.3.3 Makefile文件的调用 29
2.3.4 Makefile文件的内容 30
2.3.5 make命令的特殊用法 33
2.4 输出调试及GDB调试器 34
2.4.1 输出调试 35
2.4.2 GDB调试器 35
2.5 库 39
2.5.1 库相关概念 39
2.5.2 静态库和共享库 40
2.6 案例2:简易学生成绩计算 42
2.6.1 分析与设计 42
2.6.2 实施 43
2.6.3 编译与运行 43
习题 44
第3章 Linux程序设计初步 46
3.1 程序及进程的存储结构 46
3.2 变量的类型修饰符 47
3.3 命令行参数及获取 49
3.3.1 命令行参数 49
3.3.2 getopt函数获取命令行参数 50
3.4 环境变量 53
3.4.1 Shell的环境变量 53
3.4.2 环境变量的相关命令 54
3.4.3 环境变量函数 55
3.5 时间管理 56
3.6 错误代码 59
3.7 标准I/O与文件I/O 61
3.8 案例3:设置环境变量 62
3.8.1 分析与设计 62
3.8.2 实施 63
3.8.3 编译与运行 63
习题 64
第4章 文件I/O 66
4.1 文件系统简介 66
4.1.1 UNIX/Linux文件系统概述 67
4.1.2 虚拟文件系统(VFS) 68
4.1.3 索引节点(inode) 68
4.1.4 文件的类型 69
4.1.5 文件的访问权限 71
4.2 访问文件的内核数据结构 73
4.3 文件基本I/O操作 74
4.3.1 打开/创建文件 74
4.3.2 读文件 78
4.3.3 写文件 79
4.3.4 文件定位 80
4.3.5 关闭文件 82
4.3.6 文件操作举例 82
4.4 文件访问的同步 84
4.5 案例4:文件复制命令的实现 84
4.5.1 分析与设计 84
4.5.2 实施 85
4.5.3 编译与运行 85
习题 86
第5章 文件属性 88
5.1 获取文件属性 88
5.2 用户/组ID与名字的转换 90
5.2.1 用户和组 90
5.2.2 获取文件的用户和组的信息 91
5.3 硬链接与符号链接 93
5.3.1 硬链接与符号链接的区别 93
5.3.2 相关的系统调用 95
5.4 dup/dup2 95
5.4.1 输入/输出重定向 95
5.4.2 系统调用dup/dup2 96
5.5 文件属性的修改 98
5.5.1 修改文件属性 98
5.5.2 改变文件所有者及所属组chown/fchown/lchown 99
5.5.3 改变文件访问权限chmod/fchmod 100
5.5.4 改变文件时间utime 100
5.5.5 改变文件长度truncate/ftruncate 101
5.6 案例5:显示文件长格式信息 101
5.6.1 分析与设计 101
5.6.2 实施 101
5.6.3 编译与运行 102
习题 104
第6章 目录文件管理 106
6.1 目录基本操作 106
6.1.1 打开目录 106
6.1.2 读目录 106
6.1.3 关闭目录 107
6.2 目录其他操作 108
6.2.1 切换当前目录 108
6.2.2 创建目录 109
6.2.3 删除目录 110
6.2.4 目录指针定位 110
6.3 案例6:显示指定目录下文件列表 110
6.3.1 分析与设计 110
6.3.2 实施 111
6.3.3 编译与运行 115
习题 118
第7章 进程控制 119
7.1 进程基本概念 119
7.1.1 进程和进程控制块 119
7.1.2 进程标识 120
7.1.3 用户标识 120
7.2 进程控制 123
7.2.1 创建进程 123
7.2.2 exec*系列函数 129
7.2.3 进程终止 133
7.2.4 等待进程结束 134
7.2.5 system函数 139
7.3 什么是Shell 140
7.3.1 用户登录Shell 140
7.3.2 Shell执行命令 141
7.4 案例7:实现简单的Shell 141
7.4.1 分析与设计 141
7.4.2 实施 142
7.4.3 编译与运行 142
习题 143
第8章 线程 144
8.1 线程概念 144
8.2 线程基本操作 145
8.3 线程间通信 150
8.3.1 互斥锁 150
8.3.2 条件变量 152
8.3.3 无名信号量 153
8.3.4 读写锁 154
8.3.5 自旋锁和屏障 154
8.4 线程私有数据 154
8.5 案例8:线程 157
8.5.1 分析与设计 157
8.5.2 实施 158
8.5.3 编译与运行 158
习题 159
第9章 信号与管道 161
9.1 信号 161
9.1.1 信号的概念 161
9.1.2 信号的产生 162
9.1.3 信号的响应方式 167
9.1.4 sleep函数和系统调用pause 170
9.1.5 信号集 173
9.2 管道 177
9.2.1 无名管道 177
9.2.2 有名管道 181
习题 182
第10章 进程间通信 184
10.1 System V IPC简介 184
10.2 System V信号量 186
10.3 System V共享内存 189
10.4 System V消息队列 191
习题 195
第11章 网络编程 196
11.1 网络编程基