第一章 C语言与Linux系统 1
1.1 Linux系统简介 1
1.2 C语言概述 5
1.3 Linux系统中的C语言 26
第二章 GCC编译器 30
2.1 GCC的安装 30
2.2 GCC的使用 37
2.3 其它编译调试工具 45
第三章 C语言的调试工具 48
3.1 gdb符号调试器 48
3.2 gdb命令详解及简单应用举例 49
3.3 其他调试工具 79
第四章 使用make 81
4.1 make的简单使用 81
4.2 控制make的属性 86
4.3 使用宏(macro) 96
4.4 内部规则 105
4.5 使用库 110
第五章 文件系统的操作 116
5.1 文件系统简介 117
5.2 顺序文件操作 122
5.3 随机文件操作 132
5.4 文件共享 136
5.5 索引节点 139
5.6 文件层次结构 143
5.7 改变文件属性 145
5.8 文件链接 149
5.9 设备文件 154
第六章 标准输入输出 157
6.1 简介 157
6.2 标准输入输出的基本操作 158
6.3 非格式化输入输出操作 164
6.4 格式化输入输出操作 174
6.5 临时文件的有关操作 177
第七章 进程的控制 181
7.1 进程概述 181
7.2 进程的基本操作 183
7.3 进程之间的关系 208
第八章 信号及其处理 219
8.1 简介 219
8.2 信号与信号处理函数 224
8.3 信号集及其处理 234
8.4 作业控制信号 262
第九章 进程间的通信 265
9.1 简介 265
9.2 管道 265
9.3 命名管道 279
9.4 System V的进程间通讯机制 284
第十章 守护进程的编制 309
10.1 守护进程简介 309
10.2 守护进程的编码 311
10.3 守护进程的输出 315
第十一章 网络编程 319
11.1 预备知识 319
11.2 流式套接口的基本操作 334
11.3 客户/服务器机制 356
11.4 数据报套接口的操作 363
11.5 高级技巧:select()和poll() 373
第十二章 设备编程 386
12.1 对声音设备编程 386
12.2 对鼠标端口编程 387
12.3 对调制解调器编程 389
12.4 对打印机端口编程 392
12.5 对控制台终端编程 394
第13章 一个实例——自己的Shell 399
13.1 头文件head.h: 400
13.2 主过程main.c 401
13.3 初始化模块init.c: 402
13.4 语法分析get simcom.c 403
13.5 得到下一标识符get_word.c 404
13.6 得到当前命令行get_comln.c 405
13.7 执行简单命令Run_com.c 405
13.8 执行输入的命令Execute.c 407
13.9 分析简单命令Get_simarg.c 408
13.10 字符串匹配Check.c 410
附录 Linux系统调用一览表 411