第一章 C语言与Linux系统 1
1.1 Linux系统简介 1
1.2 C语言概述 5
1.3 Linux系统中的C语言 26
第二章 GCC编译器 29
2.1 GCC的安装 29
2.2 GCC的使用 36
2.3 其他编译调试工具 44
3.1 gdb符号调试器 47
第三章 C语言的调试工具 47
3.2 gdb命令详解及简单应用举例 48
3.3 其他调试工具 74
第四章 使用make 76
4.1 make的简单使用 76
4.2 控制make的属性 81
4.3 使用宏(macro) 91
4.4 内部规则 96
4.5 使用库 101
5.1 文件系统简介 107
第五章 文件系统的操作 107
5.2 顺序文件操作 113
5.3 随机文件操作 122
5.4 文件共享 126
5.5 索引节点 129
5.6 文件层次结构 133
5.7 改变文件属性 134
5.8 文件链接 138
5.9 设备文件 142
6.1 简介 145
第六章 标准输入输出 145
6.2 标准输入输出的基本操作 146
6.3 非格式化输入输出操作 151
6.4 格式化输入输出操作 160
6.5 临时文件的有关操作 162
第七章 进程的控制 167
7.1 进程概述 167
7.2 进程的基本操作 169
7.3 进程之间的关系 191
第八章 信号及其处理 202
8.1 简介 202
8.2 信号与信号处理函数 206
8.3 信号集及其处理 215
8.4 作业控制信号 238
第九章 进程间的通信 241
9.1 简介 241
9.2 管道 241
9.3 命名管道 253
9.4 System V的进程间通信机制 258
第十章 守护进程的编制 280
10.1 守护进程简介 280
10.2 守护进程的编码 282
10.3 守护进程的输出 286
第十一章 网络编程 290
11.1 预备知识 290
11.2 流式套接字的基本操作 305
11.3 客户/服务器机制 323
11.4 数据报套接字的操作 330
11.5 高级技巧:select()和poll() 337
第十二章 设备编程 348
12.1 对声音设备编程 348
12.2 对鼠标端口编程 349
12.3 对调制解调器编程 351
12.4 对打印机端口编程 354
12.5 对控制台终端编程 356
第13章 一个实例——自己的Shell 361
13.1 头文件head.h 361
13.3 初始化模块init.c 363
13.2 主过程main.c 363
13.4 语法分析get_simcom.c 364
13.5 得到下一标识符get_word.c 365
13.6 得到当前命令行get_comln.c 366
13.7 执行简单命令Run_com.c 366
13.8 执行输入的命令Execute.c 367
13.9 分析简单命令Get_simarg.c 368
13.10 字符串匹配Check.c 369
附录Linux系统调用一览表 371