部分 III. Linux系统编程

目录

28. 文件与I/O
汇编程序的Hello world
C标准I/O库函数与Unbuffered I/O函数
open/close
read/write
lseek
fcntl
ioctl
mmap
29. 文件系统
引言
ext2文件系统
总体存储布局
实例剖析
数据块寻址
文件和目录操作的系统函数
VFS
内核数据结构
dup和dup2函数
30. 进程
引言
环境变量
进程控制
fork函数
exec函数
wait和waitpid函数
进程间通信
管道
其它IPC机制
练习:实现简单的Shell
31. Shell脚本
Shell的历史
Shell如何执行命令
执行交互式命令
执行脚本
Shell的基本语法
变量
文件名代换(Globbing):* ? []
命令代换:`或 $()
算术代换:$(())
转义字符\
单引号
双引号
bash启动脚本
作为交互登录Shell启动,或者使用--login参数启动
以交互非登录Shell启动
非交互启动
以sh命令启动
Shell脚本语法
条件测试:test [
if/then/elif/else/fi
case/esac
for/do/done
while/do/done
位置参数和特殊变量
函数
Shell脚本的调试方法
32. 正则表达式
引言
基本语法
sed
awk
练习:在C语言中使用正则表达式
33. 信号
信号的基本概念
产生信号
通过终端按键产生信号
调用系统函数向进程发信号
由软件条件产生信号
阻塞信号
信号在内核中的表示
信号集操作函数
sigprocmask
sigpending
捕捉信号
内核如何实现信号的捕捉
sigaction
pause
可重入函数
sig_atomic_t类型与volatile限定符
竞态条件与sigsuspend函数
关于SIGCHLD信号
34. 终端、作业控制与守护进程
终端
终端的基本概念
终端登录过程
网络登录过程
作业控制
Session与进程组
与作业控制有关的信号
守护进程
35. 线程
线程的概念
线程控制
创建线程
终止线程
线程间同步
mutex
Condition Variable
Semaphore
其它线程间同步机制
编程练习
36. TCP/IP协议基础
TCP/IP协议栈与数据包封装
以太网(RFC 894)帧格式
ARP数据报格式
IP数据报格式
IP地址与路由
UDP段格式
TCP协议
段格式
通讯时序
流量控制
37. socket编程
预备知识
网络字节序
socket地址的数据类型及相关函数
基于TCP协议的网络程序
最简单的TCP网络程序
错误处理与读写控制
把client改为交互式输入
使用fork并发处理多个client的请求
setsockopt
使用select
基于UDP协议的网络程序
UNIX Domain Socket IPC
练习:实现简单的Web服务器
基本HTTP协议
执行CGI程序