Linux C編程完全解密

,

作者:閆敬, 吳淑坤

出版社:清華大學出版社

ISBN:9787302531289

$33.95

產品號碼: 131098 貨號: 9787302531289 分類: , 標籤: , , ,

《Linux C編程完全解密》以Red Hat 9.0 和Ubuntu 12.01 為平臺,系統地介紹了Linux 作業系統下的各種shell 命令以及在此平臺下進行C 語言開發的步驟和方法,並通過大量實例講解在Linux 下進行C 語言開發的方法和技巧。

《Linux C編程完全解密》共13 章,包括Linux 作業系統概述,Linux 的基本操作,文字編輯器,Linux 下的C 語言開發基礎,靜態程式庫和動態庫,make 工程管理,檔程式設計,shell 腳本的開發,進程管理,進程間通信(IPC), POSIX 執行緒,Linux 網路程式設計,Linux 驅動程式和嵌入式基礎。同時還配有綜合專案實戰環節的原始程式碼, 使讀者能夠在此基礎上舉一反三,提升開發應用專案的能力。

《Linux C編程完全解密》結構合理、內容全面、深入淺出、通俗易懂,具有很強的參考性和實用性。可作為普通高等院校電腦及相關專業進行Linux 平臺下C 語言程式設計的教材,也可作為程式開發員的參考用書。
 
 

目錄

第1章 Linux作業系統概述    1
1.1 認識Linux作業系統       2
1.1.1 Linux作業系統發展背景   2
1.1.2 Linux作業系統的特點    2
1.1.3 Linux作業系統的應用現狀  3
1.2 Linux C開發概述        3
1.2.1 Linux C開發簡介      3
1.2.2 IEEE POSIX        4
1.2.3 Linux C 開發工具      4
1.3 小結               4
習題                   4

第2章 Linux的基本操作     7
2.1 shell初體驗           8
2.1.1 虛擬終端         8
2.1.2 shell命令         8
2.2 shell常用命令          9
2.2.1 目錄和檔操作命令    9
2.2.2 檔歸檔及壓縮      15
2.2.3 套裝軟體的安裝       17
2.3 深入shell            18
2.3.1 萬用字元          18
2.3.2 重定向          18
2.3.3 管道           19
2.3.4 自動補全         19
2.3.5 用戶操作命令       20
2.3.6 關機與重啟        21
2.4 硬連結與軟連結         22
2.4.1 硬連結          23
2.4.2 軟連結          24
2.5 小結               24
習題                   25

第3章 文字編輯器       27
3.1 vi編輯器概述          28
3.1.1 vi的三種工作模式     28
3.1.2 vi的初體驗        28
3.2 命令模式下的文字區塊操作    29
3.2.1 行的定位         29
3.2.2 文字區塊的複製、移動和刪除           30
3.2.3 撤銷和重複        31
3.2.4 字串的查找       31
3.3 末行模式下的常用操作     31
3.4 vi環境定制            32
3.5 小結               33
習題                   33

第4章 Linux下的C語言開發基礎         35
4.1 C語言開發的基本步驟      36
4.1.1 gcc編譯工具        36
4.1.2 gcc 編譯過程詳解      37
4.1.3 gcc 編譯多檔       39
4.2 標頭檔              40
4.2.1 標頭檔的編輯和使用    40
4.2.2 進一步理解標頭檔     42
4.2.3 標頭檔重複包含      43
4.3 gdb 調試工具           44
4.3.1 gdb 調試基本命令      44
4.3.2 gdb 初體驗         46
4.3.3 gdb 的中斷點調試       48
4.4 IDE 工具 CodeBlocks      51
4.4.1 CodeBlocks 的安裝     51
4.4.2 CodeBlocks 的使用     52
4.5 小結                55
習題                   55

第5章 靜態程式庫和動態庫      57
5.1 庫的概述             58
5.1.1 為什麼使用庫       58
5.1.2 庫的特點         58
5.2 靜態程式庫              59
5.2.1 靜態程式庫的創建       59
5.2.2 靜態程式庫的使用       60
5.3 動態庫              61
5.3.1 動態庫的創建       61
5.3.2 動態庫的使用       62
5.4 靜態程式庫和動態庫的區別      62
5.4.1 實例測試         63
5.4.2 驗證環節         63
5.5 綜合舉例             65
5.6 小結                66
習題                   66

第6章 make 工程管理       69
6.1 make 概述            70
6.1.1 make 命令和Makefile 文件  70
6.1.2 Makefile 檔編寫      70
6.1.3 Makefile 檔中的變數    72
6.1.4 Makefile 萬用字元       73
6.1.5 Makefile 檔的預設規則   74
6.1.6 Makefile 檔中的偽目標   75
6.1.7 make 的條件執行      76
6.2 automake 的使用        76
6.2.1 automake 生成Makefile步驟           76
6.2.2 實例講解         77
6.3 小結                80
習題                   80

第7章 Linux 下的檔程式設計     81
7.1 概述                82
7.1.1 Linux 下的系統調用     82
7.1.2 基本I/O 函數        82
7.1.3 檔描述符        83
7.2 基本I/O 操作           83
7.2.1 open 函數         84
7.2.2 close 函數         86
7.2.3 write 函數         87
7.2.4 read 函數         88
7.2.5 lseek 函數         90
7.3 文件鎖              91
7.3.1 Linux 下的檔鎖機制    93
7.3.2 檔鎖的使用       93
7.3.3 實例講解         94
7.4 目錄操作             97
7.4.1 mkdir 函數         97
7.4.2 rmdir 函數         98
7.4.3 getcwd 函數        99
7.4.4 opendir 函數        99
7.4.5 readdir 函數        100
7.4.6 closedir 函數        101
7.5 專案實戰             101
7.6 小結                110
習題                   110

第8章 shell 腳本的開發     113
8.1 shell 程式設計基礎          114
8.2 管道和重定向           114
8.2.1 輸出重定向        114
8.2.2 輸入重定向        115
8.2.3 管道           115
8.3 shell 腳本的語法         116
8.3.1 變數           117
8.3.2 程式結構         118
8.3.3 函數           123
8.3.4 命令及其執行       123
8.3.5 調試腳本         125
8.4 shell 腳本設計示例        125
8.4.1 查看主機網卡流量     125
8.4.2 監控CPU 和記憶體的使用情況         126
8.4.3 查找日期為某一天     126
8.5 小結                127
習題                   127

第9章 進程管理        129
9.1 進程概述             130
9.1.1 進程的概念        130
9.1.2 進程ID          130
9.1.3 進程調度         131
9.2 進程控制             132
9.2.1 進程控制塊        132
9.2.2 進程創建函數(fork)     133
9.2.3 進程等待函數(wait)    138
9.2.4 waitpid 函數        139
9.2.5 vfork 函數         142
9.2.6 進程終止函數(exit)    143
9.2.7 exec 函數         145
9.3 小結                146
習題                   146

第10章 進程間通信(IPC)    149
10.1 進程通信概述          150
10.1.1 管道           150
10.1.2 信號           153
10.1.3 信號的產生方式      154
10.1.4 信號的處理方式      154
10.2 信號量              156
10.2.1 信號量定義        157
10.2.2 信號量功能        157
10.2.3 使用信號量        164
10.3 共用記憶體            167
10.3.1 認識共用記憶體       167
10.3.2 共用記憶體函數       168
10.4 訊息佇列            173
10.4.1 訊息佇列概述       174
10.4.2 訊息佇列函數       176
10.4.3 訊息佇列程式設計實例     179
10.4.4 ATM 的實現       183
10.5 小結               189
習題                   189

第11章 POSIX 執行緒       191
11.1 認識執行緒            192
11.2 多執行緒程式設計           194
11.2.1 執行緒創建函數       195
11.2.2 多執行緒中的執行緒等待    198
11.2.3 執行緒專有數據       199
11.2.4 保證多執行緒程式設計中函數的可重入性         202
11.3 執行緒的屬性           203
11.3.1 常用執行緒屬性       203
11.3.2 常用執行緒屬性函數     205
11.4 執行緒的銷毀           206
11.5 執行緒的同步           209
11.5.1 用信號量進行同步     209
11.5.2 用互斥量進行同步     211
11.6 聊天室的實現          214
11.7 小結               219
習題                   219

第12章 Linux 網路程式設計      221
12.1 網路程式設計常識          222
12.1.1 TCP/IP 協議概述      222
12.1.2 IP 位址與埠       223
12.1.3 網路位元組序和主機位元組序          224
12.2 簡單的本地通信         225
12.2.1 socket 實現本地通信    226
12.2.2 相關API 詳解       226
12.3 socket 實現網路通信      230
12.3.1 基於TCP 的網路程式設計    230
12.3.2 相關API 詳解       230
12.3.3 基於UDP 的網路程式設計   234
12.4 守護進程             237
12.4.1 守護進程概念       237
12.4.2 守護進程的編寫要點    238
12.5 多客戶通信           242
12.6 小結               245
習題                   246

第13章 Linux 驅動程式和嵌入式基礎          249
13.1 Linux 驅動程式與嵌入式開發的基礎知識         250
13.1.1 嵌入式Linux 的特點    250
13.1.2 嵌入式Linux 的系統開發平臺           251
13.1.3 嵌入式Linux 開發的一般流程           251
13.1.4 嵌入式Linux 驅動程式   252
13.2 Linux 驅動程式與嵌入式開發中的注意問題        253
13.2.1 Linux 的記憶體空間劃分   253
13.2.2 Linux 的記憶體管理和IO定址           253
13.2.3 Linux 的時基問題     254
13.3 Linux 驅動程式和嵌入式開發的設備類型           254
13.3.1 字元設備特點       255
13.3.2 塊設備特點        255
13.4 Linux 嵌入式開發的應用特點               255
13.4.1 常用的調試方法      255
13.4.2 可攜性問題       256
13.5 小結               256
習題                   257

附錄 習題答案          259
 
 

出版地

大陸

出版日期

08/24/2019

印刷

單色印刷

版別

初版

裝訂

平裝

語系

簡體中文