部分 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)
';