部分 III. Linux系统编程
最后更新于:2022-04-01 22:02:00
# 部分 III. Linux系统编程
**目录**
+ [28\. 文件与I/O](ch28.html)
+ [1\. 汇编程序的Hello world](ch28s01.html)
+ [2\. C标准I/O库函数与Unbuffered I/O函数](ch28s02.html)
+ [3\. open/close](ch28s03.html)
+ [4\. read/write](ch28s04.html)
+ [5\. lseek](ch28s05.html)
+ [6\. fcntl](ch28s06.html)
+ [7\. ioctl](ch28s07.html)
+ [8\. mmap](ch28s08.html)
+ [29\. 文件系统](ch29.html)
+ [1\. 引言](ch29s01.html)
+ [2\. ext2文件系统](ch29s02.html)
+ [2.1\. 总体存储布局](ch29s02.html#id2857323)
+ [2.2\. 实例剖析](ch29s02.html#id2858019)
+ [2.3\. 数据块寻址](ch29s02.html#id2859212)
+ [2.4\. 文件和目录操作的系统函数](ch29s02.html#id2859394)
+ [3\. VFS](ch29s03.html)
+ [3.1\. 内核数据结构](ch29s03.html#id2860264)
+ [3.2\. dup和dup2函数](ch29s03.html#id2860911)
+ [30\. 进程](ch30.html)
+ [1\. 引言](ch30s01.html)
+ [2\. 环境变量](ch30s02.html)
+ [3\. 进程控制](ch30s03.html)
+ [3.1\. fork函数](ch30s03.html#id2866212)
+ [3.2\. exec函数](ch30s03.html#id2866732)
+ [3.3\. wait和waitpid函数](ch30s03.html#id2867242)
+ [4\. 进程间通信](ch30s04.html)
+ [4.1\. 管道](ch30s04.html#id2867812)
+ [4.2\. 其它IPC机制](ch30s04.html#id2868153)
+ [5\. 练习:实现简单的Shell](ch30s05.html)
+ [31\. Shell脚本](ch31.html)
+ [1\. Shell的历史](ch31s01.html)
+ [2\. Shell如何执行命令](ch31s02.html)
+ [2.1\. 执行交互式命令](ch31s02.html#id2872017)
+ [2.2\. 执行脚本](ch31s02.html#id2872211)
+ [3\. Shell的基本语法](ch31s03.html)
+ [3.1\. 变量](ch31s03.html#id2872666)
+ [3.2\. 文件名代换(Globbing):* ? []](ch31s03.html#id2872839)
+ [3.3\. 命令代换:`或 $()](ch31s03.html#id2872936)
+ [3.4\. 算术代换:$(())](ch31s03.html#id2872971)
+ [3.5\. 转义字符\](ch31s03.html#id2873001)
+ [3.6\. 单引号](ch31s03.html#id2873083)
+ [3.7\. 双引号](ch31s03.html#id2873112)
+ [4\. bash启动脚本](ch31s04.html)
+ [4.1\. 作为交互登录Shell启动,或者使用--login参数启动](ch31s04.html#id2873231)
+ [4.2\. 以交互非登录Shell启动](ch31s04.html#id2873387)
+ [4.3\. 非交互启动](ch31s04.html#id2873571)
+ [4.4\. 以sh命令启动](ch31s04.html#id2873616)
+ [5\. Shell脚本语法](ch31s05.html)
+ [5.1\. 条件测试:test [](ch31s05.html#id2873722)
+ [5.2\. if/then/elif/else/fi](ch31s05.html#id2874121)
+ [5.3\. case/esac](ch31s05.html#id2874366)
+ [5.4\. for/do/done](ch31s05.html#id2874526)
+ [5.5\. while/do/done](ch31s05.html#id2874637)
+ [5.6\. 位置参数和特殊变量](ch31s05.html#id2874685)
+ [5.7\. 函数](ch31s05.html#id2874943)
+ [6\. Shell脚本的调试方法](ch31s06.html)
+ [32\. 正则表达式](ch32.html)
+ [1\. 引言](ch32s01.html)
+ [2\. 基本语法](ch32s02.html)
+ [3\. sed](ch32s03.html)
+ [4\. awk](ch32s04.html)
+ [5\. 练习:在C语言中使用正则表达式](ch32s05.html)
+ [33\. 信号](ch33.html)
+ [1\. 信号的基本概念](ch33s01.html)
+ [2\. 产生信号](ch33s02.html)
+ [2.1\. 通过终端按键产生信号](ch33s02.html#id2884244)
+ [2.2\. 调用系统函数向进程发信号](ch33s02.html#id2884400)
+ [2.3\. 由软件条件产生信号](ch33s02.html#id2884567)
+ [3\. 阻塞信号](ch33s03.html)
+ [3.1\. 信号在内核中的表示](ch33s03.html#id2884694)
+ [3.2\. 信号集操作函数](ch33s03.html#id2884876)
+ [3.3\. sigprocmask](ch33s03.html#id2885022)
+ [3.4\. sigpending](ch33s03.html#id2885205)
+ [4\. 捕捉信号](ch33s04.html)
+ [4.1\. 内核如何实现信号的捕捉](ch33s04.html#id2885289)
+ [4.2\. sigaction](ch33s04.html#id2885439)
+ [4.3\. pause](ch33s04.html#id2885627)
+ [4.4\. 可重入函数](ch33s04.html#id2885983)
+ [4.5\. sig_atomic_t类型与volatile限定符](ch33s04.html#id2886197)
+ [4.6\. 竞态条件与sigsuspend函数](ch33s04.html#id2886686)
+ [4.7\. 关于SIGCHLD信号](ch33s04.html#id2887260)
+ [34\. 终端、作业控制与守护进程](ch34.html)
+ [1\. 终端](ch34s01.html)
+ [1.1\. 终端的基本概念](ch34s01.html#id2890359)
+ [1.2\. 终端登录过程](ch34s01.html#id2891132)
+ [1.3\. 网络登录过程](ch34s01.html#id2891618)
+ [2\. 作业控制](ch34s02.html)
+ [2.1\. Session与进程组](ch34s02.html#id2892071)
+ [2.2\. 与作业控制有关的信号](ch34s02.html#id2892541)
+ [3\. 守护进程](ch34s03.html)
+ [35\. 线程](ch35.html)
+ [1\. 线程的概念](ch35s01.html)
+ [2\. 线程控制](ch35s02.html)
+ [2.1\. 创建线程](ch35s02.html#id2895632)
+ [2.2\. 终止线程](ch35s02.html#id2896029)
+ [3\. 线程间同步](ch35s03.html)
+ [3.1\. mutex](ch35s03.html#id2896462)
+ [3.2\. Condition Variable](ch35s03.html#id2895424)
+ [3.3\. Semaphore](ch35s03.html#id2897332)
+ [3.4\. 其它线程间同步机制](ch35s03.html#id2897423)
+ [4\. 编程练习](ch35s04.html)
+ [36\. TCP/IP协议基础](ch36.html)
+ [1\. TCP/IP协议栈与数据包封装](ch36s01.html)
+ [2\. 以太网(RFC 894)帧格式](ch36s02.html)
+ [3\. ARP数据报格式](ch36s03.html)
+ [4\. IP数据报格式](ch36s04.html)
+ [5\. IP地址与路由](ch36s05.html)
+ [6\. UDP段格式](ch36s06.html)
+ [7\. TCP协议](ch36s07.html)
+ [7.1\. 段格式](ch36s07.html#id2900865)
+ [7.2\. 通讯时序](ch36s07.html#id2900917)
+ [7.3\. 流量控制](ch36s07.html#id2901189)
+ [37\. socket编程](ch37.html)
+ [1\. 预备知识](ch37s01.html)
+ [1.1\. 网络字节序](ch37s01.html#id2902826)
+ [1.2\. socket地址的数据类型及相关函数](ch37s01.html#id2902915)
+ [2\. 基于TCP协议的网络程序](ch37s02.html)
+ [2.1\. 最简单的TCP网络程序](ch37s02.html#id2902690)
+ [2.2\. 错误处理与读写控制](ch37s02.html#id2903656)
+ [2.3\. 把client改为交互式输入](ch37s02.html#id2903862)
+ [2.4\. 使用fork并发处理多个client的请求](ch37s02.html#id2903959)
+ [2.5\. setsockopt](ch37s02.html#id2904007)
+ [2.6\. 使用select](ch37s02.html#id2904122)
+ [3\. 基于UDP协议的网络程序](ch37s03.html)
+ [4\. UNIX Domain Socket IPC](ch37s04.html)
+ [5\. 练习:实现简单的Web服务器](ch37s05.html)
+ [5.1\. 基本HTTP协议](ch37s05.html#id2904532)
+ [5.2\. 执行CGI程序](ch37s05.html#id2904687)
';