# 部分?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)
- Linux C編程一站式學習
- 歷史
- 前言
- 部分?I.?C語言入門
- 第?1?章?程序的基本概念
- 第?2?章?常量、變量和表達式
- 第?3?章?簡單函數
- 第?4?章?分支語句
- 第?5?章?深入理解函數
- 第?6?章?循環語句
- 第?7?章?結構體
- 第?8?章?數組
- 第?9?章?編碼風格
- 第?10?章?gdb
- 第?11?章?排序與查找
- 第?12?章?棧與隊列
- 第?13?章?本階段總結
- 部分?II.?C語言本質
- 第?14?章?計算機中數的表示
- 第?15?章?數據類型詳解
- 第?16?章?運算符詳解
- 第?17?章?計算機體系結構基礎
- 第?18?章?x86匯編程序基礎
- 第?19?章?匯編與C之間的關系
- 第?20?章?鏈接詳解
- 第?21?章?預處理
- 第?22?章?Makefile基礎
- 第?23?章?指針
- 第?24?章?函數接口
- 第?25?章?C標準庫
- 第?26?章?鏈表、二叉樹和哈希表
- 第?27?章?本階段總結
- 部分?III.?Linux系統編程
- 第?28?章?文件與I/O
- 第?29?章?文件系統
- 第?30?章?進程
- 第?31?章?Shell腳本
- 第?32?章?正則表達式
- 第?33?章?信號
- 第?34?章?終端、作業控制與守護進程
- 第?35?章?線程
- 第?36?章?TCP/IP協議基礎
- 第?37?章?socket編程
- 附錄?A.?字符編碼
- 附錄?B.?GNU Free Documentation License Version 1.3, 3 November 2008
- 參考書目
- 索引