圖書簡介
本書可分為:Linux基本操作、Linux編程環境和Linux編程基本開發三個方面的內容。Linux基本操作主要介紹Linux作業系統特點、安裝和使用;Linux常用命令的使用方法和具體使用;Linux 中的Shell編程基本語法、基本語句和執行、調試方法。Linux編程環境,主要圍繞Linux編程相關工具進行介紹,包括gcc/gdb/make工具的主要參數和使用方法。Linux系統編程主要包括檔案系統編程;進程管理;信號的處理;進程間通信;多執行緒編程;網路編程;Linux下資料庫編程等相關知識。最後的附錄還附上了Linux編程相關的基礎實驗等內容。
圖書目錄
第一章 Linux 基礎 1
1.1 什麼是Linux ? 1
1.1.1 Linux作業系統特點 1
1.1.2 Linux作業系統組成部分 1
1.2 Linux版本及Fedora作業系統 2
1.2.1 Linux核心版本 2
1.2.2 Linux 發行版 3
1.2.3 Fedora作業系統 3
1.2.4 Fedora發行方式 4
1.2.4 Fedora 系統安裝基本要求 4
1.3 Fedora 20的安裝 5
1.3.1 虛擬機下的fedora20的安裝準備 5
1.3.2 Fedora 20安裝 9
1.4 Linux常用命令 11
1.4.1 Linux命令執行方法 12
1.4.2 Linux 常用各種命令 13
1.6 VI編輯器的使用 31
1.4.3 vi編輯器的使用 32
1.5 POSIX標準和LSB標準 35
第2章 Linux編程環境 1
2.1 gcc編譯器的使用 1
2.1.1 gcc編譯器簡介 1
2.1.2 gcc常用選項:預處理控制 2
2.1.3 gcc常用選項:編譯及警告信息控制選項 3
2.1.4 gcc常用選項:C語言標準控制選項和程式調試及最佳化選項 6
2.1.5 gcc常用選項:搜尋路徑控制和gcc連結選項 6
2.1.6 利用gcc創建庫檔案 7
2.2 GDB調試器的使用 10
2.2.1 gdb調試器的使用 11
2.2.2 gdb調試器使用實例 18
2.3 make工具 19
2.3.1 第一個makefile檔案 19
2.3.2 makefile編寫規則 20
2.3.3 make的基本工作原理及過程 21
2.3.4 makefile檔案 22
第3章 Shell編程 1
3.1 Shell基礎 1
3.1.1 Shell互動方式 1
3.1.2 Shell基本功能 1
3.2 Bash編程 2
3.3 Shell中的特殊字元 3
3.3.1.轉義符 ”” 3
3.3. 2.單引號 4
3.3.3. 雙引號 4
3.3.4.命令替換符號`(該符號為鍵盤上1左邊的`符號,不是單引號) 5
3.4 Shell變數 5
3.4.1 Shell用戶變數定義 6
3.4.2 Shell環境變數 6
3.4.3 Shell內部變數 7
3.4.4 Shell參數擴展(Parameter Expansion) 8
3.4.5 Shell變數的算術擴展 9
3.4.6 條件表達式 10
3.4.7 Shell字元串操作 11
3.5 Shell控制語句 13
3.5.1 條件語句 13
3.5.2 循環語句 15
3.6 Shell其它命令 18
3.6.1 管道命令 | 18
3.6.2 重定向命令 18
3.6.3 echo命令 20
3.6.4 shift命令 20
3.7 Shell函式 21
3.8 Shell 數組 22
3.9 Shell中Dialog工具 22
3.10 Bash調試 25
第四章 檔案I/O操作 1
4.1 概述 1
4.2 檔案I/O操作 1
4.2.1 檔案的創建 2
4.2.2 檔案的打開及關閉 2
4.2.3 檔案的讀取/寫入 3
4.2.4 檔案的定位 4
4.2.5 檔案刪除 5
4.2.6 檔案描述符屬性控制fcntl 5
4.2.7 檔案操作實例 10
4.3 目錄 12
4.3.1 目錄概述 12
4.3.2 Linux檔案系統ext2基本結構 13
4.3.3 與目錄有關的系統調用 14
4.4 檔案與目錄的屬性 17
4.4.1 獲得檔案或目錄屬性 17
4.4.2 檔案或目錄的模式 17
4.4.3 符號連結 20
4.4.4 檔案屬性的更改 22
4.5 標準檔案I/O 23
4.6 處理系統調用中的錯誤 24
第5章 Linux進程管理 1
5.1 進程基本概念 1
5.2 進程創建和命令執行 2
5.3 進程退出 7
5.3.1 守護進程 7
5.3.2 殭屍進程 11
5.3.3進程退出狀態 12
5.4 進程開發實例 14
第六章 信號及信號處理 1
6.1 信號的基本概念 1
6.1.1 信號的使用和產生 1
6.1.2 信號的狀態 2
6.2 信號的分類 2
6.2.1 可靠與不可靠信號 2
6.2.2 實時信號與非實時信號 2
6.3 信號的處理 4
6.3.1 signal信號處理機制 4
6.3.2 sigaction信號處理機制 7
6.4 信號傳送函式 11
6.5 可重入函式 12
6.6 父子進程的信號處理 13
6.7 信號處理機制的套用 15
6.8 系統定時信號 16
6.8.1 睡眠函式 16
6.8.2 計時器 17
總結 19
第7章進程間通信 1
7.1 進程間通信基本概念 1
7.1.1 進程通信的作用 1
7.1.2 進程通信的實現和方法 1
7.2 管道通信 2
7.2.1 無名管道 3
7.2.2 管道與重定向 5
7.2.3 popen的介紹 9
7.2.4 命名管道 11
7.3 System V信號量 16
7.3.1 信號量的用法 16
7.3.2 信號量實例 18
7.4 POSIX有名信號量 21
7.4.1 POSIX有名信號量的使用 21
7.4.2 有名信號量實例 22
7.5 共享記憶體 25
7.5.1 共享記憶體步驟 25
7.5.2 System V 共享記憶體API 25
7.5.3 共享記憶體實例 27
7.5.4 mmap共享記憶體機制 30
7.6 訊息佇列 33
7.6.1 訊息佇列的實現原理 34
7.6.2 訊息佇列系統調用 34
7.6.3 訊息佇列實例 35
第8章 多執行緒編程 1
8.1 多執行緒概念 1
8.2 執行緒狀態與執行緒編程 2
8.2.1 執行緒的創建和參數傳遞 2
8.2.2 執行緒終止 pthread_exit 4
8.2.3執行緒掛起 pthread_join 7
8.2.5 執行緒其它相關係統調用 8
8.3 執行緒的同步與互斥 9
8.3.1 互斥量(mutex) 9
8.3.2 互斥量的使用 9
8.3.3 信號量 13
8.3.4 信號量的使用方法 13
8.3.5 條件變數 17
8.3.6 條件變數的使用 18
第九章 Linux網路編程 1
9.1. 計算機網路概述 1
9.1.1 計算機網路的組成及特點 1
9.1.2 計算機網路協定 2
9.1.3 網路協定分層 2
9.1.4 TCP/IP協定 3
9.1.5 Client/Server模型 3
9.1.6 Linux網路編程概述 3
9.1.7 網路協定棧 4
9.2. Socket編程 4
9.2.1 什麼是 Socket? 4
9.2.2 socket編程基本系統調用 5
9.2.3 socket stream服務 13
9.2.4 Socket數據報服務 16
9.2.5 Socket原始套接字服務 19
9.3. Linux網路編程高級I/O 25
9.3.1 socket阻塞/非阻塞方式 25
9.3.2 非阻塞socekt用法 26
9.3.3 socket與多路復用 29
9.4. Linux網路並發編程 43
9.4.1 Linux網路編程與多進程 44
第10章 Linux 下的資料庫編程 1
10.1 MySQL資料庫簡介 1
10.1.1 Linux資料庫編程套用 2
10.1.2 MySQL API的兩種形式 2
10.1.3 MySQL CAPI的使用 2
10.2 Linux資料庫編程基本方法 3
10.3 MySQL資料庫數據結構及API 3
10.3.1 數據結構 3
10.3.2 MySQL操作API 4
10.4 MySQL資料庫編程實例 10