<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Linux C編程一站式學習 ### 宋勁杉 北京亞嵌教育研究中心 <[songjinshan AT akaedu DOT org](mailto:songjinshan AT akaedu DOT org)> 版權 ? 2008, 2009 宋勁杉, 北京亞嵌教育研究中心 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being 前言, with no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in [附錄?B, _GNU Free Documentation License Version 1.3, 3 November 2008_](apb.html#app-gfdl). 2009.6.23 | **修訂歷史** | | :-- | :-- | | 修訂 0.6 | 2009.2.27 | | 添加了GFDL許可證,正式網絡發布。第三部分還很粗糙,錯誤也有不少,有待改進。第一部分和第二部分已經比較成熟,第二部分還差三章沒寫。 | | 修訂 0.7 | 2009.4.24 | | 全書的章節基本完成,但有些章節還很不完善。 | * * * **目錄** + [歷史](pr01.html) + [前言](pr02.html) + [I. C語言入門](pt01.html) + [1\. 程序的基本概念](ch01.html) + [1\. 程序和編程語言](intro.program.html) + [2\. 自然語言和形式語言](intro.naturalformal.html) + [3\. 程序的調試](ch01s03.html) + [4\. 第一個程序](intro.helloworld.html) + [2\. 常量、變量和表達式](ch02.html) + [1\. 繼續Hello World](ch02s01.html) + [2\. 常量](ch02s02.html) + [3\. 變量](expr.variable.html) + [4\. 賦值](ch02s04.html) + [5\. 表達式](expr.expression.html) + [6\. 字符類型與字符編碼](ch02s06.html) + [3\. 簡單函數](ch03.html) + [1\. 數學函數](ch03s01.html) + [2\. 自定義函數](ch03s02.html) + [3\. 形參和實參](ch03s03.html) + [4\. 全局變量、局部變量和作用域](ch03s04.html) + [4\. 分支語句](ch04.html) + [1\. if語句](ch04s01.html) + [2\. if/else語句](ch04s02.html) + [3\. 布爾代數](ch04s03.html) + [4\. switch語句](ch04s04.html) + [5\. 深入理解函數](ch05.html) + [1\. return語句](ch05s01.html) + [2\. 增量式開發](ch05s02.html) + [3\. 遞歸](ch05s03.html) + [6\. 循環語句](ch06.html) + [1\. while語句](ch06s01.html) + [2\. do/while語句](ch06s02.html) + [3\. for語句](ch06s03.html) + [4\. break和continue語句](ch06s04.html) + [5\. 嵌套循環](ch06s05.html) + [6\. goto語句和標號](ch06s06.html) + [7\. 結構體](ch07.html) + [1\. 復合類型與結構體](ch07s01.html) + [2\. 數據抽象](ch07s02.html) + [3\. 數據類型標志](ch07s03.html) + [4\. 嵌套結構體](ch07s04.html) + [8\. 數組](ch08.html) + [1\. 數組的基本概念](ch08s01.html) + [2\. 數組應用實例:統計隨機數](ch08s02.html) + [3\. 數組應用實例:直方圖](ch08s03.html) + [4\. 字符串](ch08s04.html) + [5\. 多維數組](ch08s05.html) + [9\. 編碼風格](ch09.html) + [1\. 縮進和空白](ch09s01.html) + [2\. 注釋](ch09s02.html) + [3\. 標識符命名](ch09s03.html) + [4\. 函數](ch09s04.html) + [5\. indent工具](ch09s05.html) + [10\. gdb](ch10.html) + [1\. 單步執行和跟蹤函數調用](ch10s01.html) + [2\. 斷點](ch10s02.html) + [3\. 觀察點](ch10s03.html) + [4\. 段錯誤](ch10s04.html) + [11\. 排序與查找](ch11.html) + [1\. 算法的概念](ch11s01.html) + [2\. 插入排序](ch11s02.html) + [3\. 算法的時間復雜度分析](ch11s03.html) + [4\. 歸并排序](ch11s04.html) + [5\. 線性查找](ch11s05.html) + [6\. 折半查找](ch11s06.html) + [12\. 棧與隊列](ch12.html) + [1\. 數據結構的概念](ch12s01.html) + [2\. 堆棧](ch12s02.html) + [3\. 深度優先搜索](ch12s03.html) + [4\. 隊列與廣度優先搜索](ch12s04.html) + [5\. 環形隊列](ch12s05.html) + [13\. 本階段總結](ch13.html) + [II. C語言本質](pt02.html) + [14\. 計算機中數的表示](ch14.html) + [1\. 為什么計算機用二進制計數](ch14s01.html) + [2\. 不同進制之間的換算](ch14s02.html) + [3\. 整數的加減運算](ch14s03.html) + [3.1\. Sign and Magnitude表示法](ch14s03.html#id2753623) + [3.2\. 1's Complement表示法](ch14s03.html#id2753761) + [3.3\. 2's Complement表示法](ch14s03.html#id2753996) + [3.4\. 有符號數和無符號數](ch14s03.html#id2754091) + [4\. 浮點數](ch14s04.html) + [15\. 數據類型詳解](ch15.html) + [1\. 整型](ch15s01.html) + [2\. 浮點型](ch15s02.html) + [3\. 類型轉換](ch15s03.html) + [3.1\. Integer Promotion](ch15s03.html#id2757955) + [3.2\. Usual Arithmetic Conversion](ch15s03.html#id2758200) + [3.3\. 由賦值產生的類型轉換](ch15s03.html#id2758516) + [3.4\. 強制類型轉換](ch15s03.html#id2758655) + [3.5\. 編譯器如何處理類型轉換](ch15s03.html#id2758764) + [16\. 運算符詳解](ch16.html) + [1\. 位運算](ch16s01.html) + [1.1\. 按位與、或、異或、取反運算](ch16s01.html#id2761062) + [1.2\. 移位運算](ch16s01.html#id2761805) + [1.3\. 掩碼](ch16s01.html#id2761995) + [1.4\. 異或運算的一些特性](ch16s01.html#id2762114) + [2\. 其它運算符](ch16s02.html) + [2.1\. 復合賦值運算符](ch16s02.html#id2762352) + [2.2\. 條件運算符](ch16s02.html#id2762537) + [2.3\. 逗號運算符](ch16s02.html#id2762598) + [2.4\. sizeof運算符與typedef類型聲明](ch16s02.html#id2762676) + [3\. Side Effect與Sequence Point](ch16s03.html) + [4\. 運算符總結](ch16s04.html) + [17\. 計算機體系結構基礎](ch17.html) + [1\. 內存與地址](ch17s01.html) + [2\. CPU](ch17s02.html) + [3\. 設備](ch17s03.html) + [4\. MMU](ch17s04.html) + [5\. Memory Hierarchy](ch17s05.html) + [18\. x86匯編程序基礎](ch18.html) + [1\. 最簡單的匯編程序](ch18s01.html) + [2\. x86的寄存器](ch18s02.html) + [3\. 第二個匯編程序](ch18s03.html) + [4\. 尋址方式](ch18s04.html) + [5\. ELF文件](ch18s05.html) + [5.1\. 目標文件](ch18s05.html#id2770854) + [5.2\. 可執行文件](ch18s05.html#id2771639) + [19\. 匯編與C之間的關系](ch19.html) + [1\. 函數調用](ch19s01.html) + [2\. `main`函數和啟動例程](ch19s02.html) + [3\. 變量的存儲布局](ch19s03.html) + [4\. 結構體和聯合體](ch19s04.html) + [5\. C內聯匯編](ch19s05.html) + [6\. volatile限定符](ch19s06.html) + [20\. 鏈接詳解](ch20.html) + [1\. 多目標文件的鏈接](ch20s01.html) + [2\. 定義和聲明](ch20s02.html) + [2.1\. `extern`和`static`關鍵字](ch20s02.html#id2787367) + [2.2\. 頭文件](ch20s02.html#id2788051) + [2.3\. 定義和聲明的詳細規則](ch20s02.html#id2788815) + [3\. 靜態庫](ch20s03.html) + [4\. 共享庫](ch20s04.html) + [4.1\. 編譯、鏈接、運行](ch20s04.html#id2789691) + [4.2\. 動態鏈接的過程](ch20s04.html#id2790795) + [4.3\. 共享庫的命名慣例](ch20s04.html#id2791032) + [5\. 虛擬內存管理](ch20s05.html) + [21\. 預處理](ch21.html) + [1\. 預處理的步驟](ch21s01.html) + [2\. 宏定義](ch21s02.html) + [2.1\. 函數式宏定義](ch21s02.html#id2797214) + [2.2\. 內聯函數](ch21s02.html#id2797661) + [2.3\. `#`、`##`運算符和可變參數](ch21s02.html#id2797840) + [2.4\. 宏展開的步驟](ch21s02.html#id2798306) + [3\. 條件預處理指示](ch21s03.html) + [4\. 其它預處理特性](ch21s04.html) + [22\. Makefile基礎](ch22.html) + [1\. 基本規則](ch22s01.html) + [2\. 隱含規則和模式規則](ch22s02.html) + [3\. 變量](ch22s03.html) + [4\. 自動處理頭文件的依賴關系](ch22s04.html) + [5\. 常用的`make`命令行選項](ch22s05.html) + [23\. 指針](ch23.html) + [1\. 指針的基本概念](ch23s01.html) + [2\. 指針類型的參數和返回值](ch23s02.html) + [3\. 指針與數組](ch23s03.html) + [4\. 指針與`const`限定符](ch23s04.html) + [5\. 指針與結構體](ch23s05.html) + [6\. 指向指針的指針與指針數組](ch23s06.html) + [7\. 指向數組的指針與多維數組](ch23s07.html) + [8\. 函數類型和函數指針類型](ch23s08.html) + [9\. 不完全類型和復雜聲明](ch23s09.html) + [24\. 函數接口](ch24.html) + [1\. 本章的預備知識](ch24s01.html) + [1.1\. `strcpy`與`strncpy`](ch24s01.html#id2819066) + [1.2\. `malloc`與`free`](ch24s01.html#id2820062) + [2\. 傳入參數與傳出參數](ch24s02.html) + [3\. 兩層指針的參數](ch24s03.html) + [4\. 返回值是指針的情況](ch24s04.html) + [5\. 回調函數](ch24s05.html) + [6\. 可變參數](ch24s06.html) + [25\. C標準庫](ch25.html) + [1\. 字符串操作函數](ch25s01.html) + [1.1\. 初始化字符串](ch25s01.html#id2827594) + [1.2\. 取字符串的長度](ch25s01.html#id2827671) + [1.3\. 拷貝字符串](ch25s01.html#id2827741) + [1.4\. 連接字符串](ch25s01.html#id2828376) + [1.5\. 比較字符串](ch25s01.html#id2828656) + [1.6\. 搜索字符串](ch25s01.html#id2828881) + [1.7\. 分割字符串](ch25s01.html#id2829046) + [2\. 標準I/O庫函數](ch25s02.html) + [2.1\. 文件的基本概念](ch25s02.html#id2829671) + [2.2\. fopen/fclose](ch25s02.html#id2829869) + [2.3\. stdin/stdout/stderr](ch25s02.html#id2830485) + [2.4\. errno與perror函數](ch25s02.html#id2830807) + [2.5\. 以字節為單位的I/O函數](ch25s02.html#id2831236) + [2.6\. 操作讀寫位置的函數](ch25s02.html#id2831814) + [2.7\. 以字符串為單位的I/O函數](ch25s02.html#id2832034) + [2.8\. 以記錄為單位的I/O函數](ch25s02.html#id2832480) + [2.9\. 格式化I/O函數](ch25s02.html#id2832755) + [2.10\. C標準庫的I/O緩沖區](ch25s02.html#id2834346) + [2.11\. 本節綜合練習](ch25s02.html#id2834904) + [3\. 數值字符串轉換函數](ch25s03.html) + [4\. 分配內存的函數](ch25s04.html) + [26\. 鏈表、二叉樹和哈希表](ch26.html) + [1\. 鏈表](ch26s01.html) + [1.1\. 單鏈表](ch26s01.html#id2844144) + [1.2\. 雙向鏈表](ch26s01.html#id2845376) + [1.3\. 靜態鏈表](ch26s01.html#id2845707) + [1.4\. 本節綜合練習](ch26s01.html#id2845773) + [2\. 二叉樹](ch26s02.html) + [2.1\. 二叉樹的基本概念](ch26s02.html#id2845875) + [2.2\. 排序二叉樹](ch26s02.html#id2846120) + [3\. 哈希表](ch26s03.html) + [27\. 本階段總結](ch27.html) + [III. Linux系統編程](pt03.html) + [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) + [A. 字符編碼](apa.html) + [1\. ASCII碼](apas01.html) + [2\. Unicode和UTF-8](apas02.html) + [3\. 在Linux C編程中使用Unicode和UTF-8](apas03.html) + [B. GNU Free Documentation License Version 1.3, 3 November 2008](apb.html) + [參考書目](bi01.html) + [索引](ix01.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看