第1章 Linux系统概述 1
1.1 Linux系统基本概念 2
1.1.1 Linux系统特点 2
1.1.2 Linux系统架构 3
1.1.3 Linux系统的起源与发展 4
1.1.4 Linux系统内核与发行版本 6
1.1.5 Linux系统市场占有分析 8
1.2 Linux系统与UNIX系统的历史渊源 10
1.2.1 UNIX系统基本概念 10
1.2.2 UNIX系统起源与发展 11
1.2.3 UNIX系统肩上的Linux系统 12
1.3 Linux系统与GNU开源文化 13
1.3.1 GNU基本概念 13
1.3.2 Linux系统与GNU相辅相成 14
1.4 Linux系统程序设计规范 15
1.4.1 Linux系统标准化 15
1.4.2 系统调用和库函数 15
1.4.3 程序设计索引 16
小结 17
习题 18
第2章 开发环境搭建 19
2.1 CentOS操作系统 20
2.1.1 CentOS系统定制安装 20
2.1.2 CentOS首次登录配置 27
2.1.3 CentOS桌面环境介绍 30
2.1.4 CentOS开发工具安装 30
2.2 VIM文本编辑器 34
2.2.1 VIM工作模式 35
2.2.2 VIM操作流程 35
2.2.3 VIM常用命令 36
2.3 GCC程序编译器 38
2.3.1 GCC文件类型 38
2.3.2 GCC编译选项 38
2.4 GDB程序调试器 40
2.4.1 GDB调试命令 41
2.4.2 GDB调试步骤 42
2.5 Make工程管理器 43
2.5.1 Make工具使用 43
2.5.2 Makefile语法规则 43
2.6 Linux C集成开发环境 44
2.6.1 Qt集成开发环境 44
2.6.2 Eclipse集成开发环境 53
小结 57
习题 58
第3章 文件编程 59
3.1 Linux文件系统概述 60
3.1.1 文件管理系统 60
3.1.2 文件IO和标准IO 61
3.1.3 文件描述符 61
3.1.4 流和FILE对象 62
3.1.5 缓冲机制 63
3.2 文件IO 64
3.2.1 函数open() 64
3.2.2 函数close() 66
3.2.3 函数read() 66
3.2.4 函数write() 69
3.2.5 函数lseek() 71
3.2.6 函数fcntl() 72
3.2.7 函数stat() 75
3.2.8 函数access() 77
3.3 标准IO 77
3.3.1 函数fopen() 78
3.3.2 函数fclose() 78
3.3.3 函数fgetc() 79
3.3.4 函数fputc() 79
3.3.5 函数fgets() 80
3.3.6 函数fputs() 82
3.3.7 二进制文件 82
3.3.8 文件流定位 84
3.3.9 格式化输入/输出 84
3.4 目录文件 85
3.4.1 函数mkdir() 86
3.4.2 函数rmdir() 87
3.4.3 函数opendir() 87
3.4.4 函数closedir() 88
3.4.5 函数readdir() 88
3.4.6 函数getcwd() 90
3.4.7 函数chdir() 91
3.5 链接文件 92
3.5.1 硬链接 92
3.5.2 软链接 97
3.6 临时文件 99
小结 103
习题 104
第4章 进程编程 105
4.1 Linux文件系统概述 106
4.1.1 进程的基本概念 106
4.1.2 进程运行状态 107
4.1.3 进程状态切换 109
4.1.4 进程启动 110
4.1.5 进程终止 110
4.1.6 程序存储空间布局 111
4.2 进程控制 112
4.2.1 进程标识 112
4.2.2 进程创建 115
4.2.3 父子进程 116
4.2.4 进程资源回收 119
4.2.5 进程体替换 119
4.2.6 调用命令行 122
4.3 进程间通信 124
4.3.1 管道 124
4.3.2 FIFO 126
4.3.3 信号 131
4.3.4 消息队列 134
4.3.5 信号量 140
4.3.6 共享内存 146
4.3.7 内存映射 151
小结 155
习题 156
第5章 线程编程 157
5.1 线程概述 158
5.1.1 线程的基本概念 158
5.1.2 线程与进程 159
5.1.3 Pthreads API背景 160
5.2 线程控制 161
5.2.1 线程标识 161
5.2.2 线程创建 162
5.2.3 线程终止 164
5.3 线程同步 168
5.3.1 同步概念 168
5.3.2 互斥量 170
5.3.3 条件变量 173
5.3.4 信号量 177
小结 180
习题 180
第6章 网络编程 181
6.1 计算机网络基础 182
6.1.1 计算机网络的作用与意义 182
6.1.2 计算机网络的起源与发展 182
6.1.3 计算机网络的覆盖范围 184
6.1.4 计算机网络的拓扑结构 185
6.1.5 OSI参考模型 188
6.2 TCP/IP协议基础 190
6.2.1 TCP/IP基本概念 190
6.2.2 TCP/IP网络模型 192
6.2.3 TCP和UDP协议 193
6.2.4 IP协议 195
6.2.5 字节序 198
6.3 Socket(套接字)编程基础 198
6.3.1 Socket地址结构 199
6.3.2 Socket地址转换 200
6.3.3 Socket基本属性 202
6.3.4 Socket系统调用 203
6.4 UNIX Domain 206
6.4.1 报文Socket编程模型 206
6.4.2 流式Socket编程模型 209
6.5 Internet Domain 212
6.5.1 UDP编程模型 212
6.5.2 TCP编程模型 216
6.6 网络编程实例 220
6.6.1 基于TCP的文件接收服务器 220
6.6.2 基于TCP的文件发送客户端 224
小结 227
习题 228
第7章 数据库编程 229
7.1 MySQL开发基础 230
7.1.1 MySQL专业术语概述 230
7.1.2 MySQL基本数据类型 231
7.1.3 MySQL开发环境搭建 234
7.1.4 MySQL常用SQL语句 237
7.2 MySQL的C编程接口 243
7.2.1 执行查询语句 243
7.2.2 提取查询结果 247
小结 256
习题 256
参考文献 258