《零點起飛學Linux C編程》是2013年清華大學出版社出版的圖書,作者是陳冠軍。
基本介紹
內容簡介,目錄,
內容簡介
全書共分3篇。第1篇介紹C語言的基礎知識和一些Linux編程的相關工具,內容包括C語言基礎、指針、函式、文本編輯器、GCC編譯器,以及調試工具使用技術;第2篇介紹LinuxC套用技術,內容包括檔案系統編程、標準輸入輸出、進程編程、網路編程,以及GUI編程等相關套用技術;第3篇介紹了面向實際套用的客戶端/伺服器端程式案例,以讓讀者學以致用。
本書適合所有想從事LinuxC開發的人員閱讀,也可作為大中專院校及職業院校相關課程的教材。另外,本書也可供Linux平台的程式設計師和編程愛好者作為實際工作中的參考書籍。
目錄
第1篇基礎篇
第1章Linux簡介以及Shell編程基礎(教學視頻:140分鐘) 2
1.1Linux系統概述 2
1.1.1Linux發展簡史 2
1.1.2Linux系統組成 3
1.1.3使用Linux的優勢 4
1.1.4Linux的套用領域 4
1.1.5Linux發行版的種類 5
1.2圖形化界面操作 5
1.2.1系統登錄、註銷與關閉系統 6
1.2.2系統管理 6
1.2.3操作檔案與目錄 7
1.3命令行界面操作 8
1.3.1系統登錄與退出 8
1.3.2操作檔案與目錄 9
1.3.3壓縮與解壓縮檔案 20
1.3.4常用網路操作 22
1.3.5用戶管理和操作 24
1.3.6系統管理常見操作 25
1.4Shell腳本編程基礎 30
1.4.1創建Shell腳本 30
1.4.2Shell中的特殊字元 31
1.4.3使用Shell變數 32
1.4.4條件測試 34
1.4.5Shell中的結構控制語句 35
1.4.6定義Shell函式 40
1.5小結 41
1.6本章習題 41
第2章C語言基礎(教學視頻:90分鐘) 42
2.1C語言概述 42
2.1.1C語言的四大特點 42
2.1.2程式的基本結構 42
2.1.3程式的開發流程 43
2.2C語言數據處理 44
2.2.1數據的表達方式——數據類型 44
2.2.2常用運算符 46
2.2.3程式的基礎——表達式 48
2.3語句類型 49
2.3.1表達式語句 49
2.3.2選擇語句if/switch 49
2.3.3循環語句for/while/do...while 52
2.3.4跳轉語句goto/continue/break 55
2.3.5複合語句和空語句 57
2.4數據的集合--數組 57
2.4.1使用一維數組 58
2.4.2使用二維數組和多維數組 59
2.4.3字元數組和字元串 61
2.5C語言的預處理 62
2.5.1宏定義define 62
2.5.2檔案包含include 64
2.5.3條件編譯 65
2.6小結 66
2.7本章習題 67
第3章深入C語言(教學視頻:89分鐘) 68
3.1保存地址值的變數--指針 68
3.1.1使用指針 68
3.1.2指針和數組的互換 72
3.1.3指針的集合——指針數組 74
3.2函式 76
3.2.1定義與聲明函式 76
3.2.2調用函式與參數傳遞 77
3.2.3變數在函式中的作用域 78
3.2.4變數的存儲類型 80
3.2.5外部函式和內部函式 82
3.2.6函式的遞歸 83
3.2.7使用函式指針 85
3.3結構體、共用體和枚舉 86
3.3.1不同類型數據的集合——結構體 86
3.3.2共用同一記憶體的數據集合——共用體 91
3.3.3羅列數據的集合——枚舉 92
3.4小結 94
3.5本章習題 94
第4章文本編輯器(教學視頻:80分鐘) 95
4.1使用VI編輯器 95
4.1.1啟動VI 95
4.1.2切換VI的工作模式 96
4.1.3保存檔案和退出 98
4.1.4移動游標 99
4.1.5滾動螢幕 101
4.1.6輸入、刪除與修改文本 103
4.1.7複製與貼上文本 106
4.1.8查找與替換文本 108
4.1.9其他功能 111
4.2VI高效編輯程式技巧 112
4.2.1在程式中跳轉 112
4.2.2補全關鍵字 113
4.2.3縮進原始碼 113
4.3使用Emacs編輯器 115
4.3.1啟動/退出Emacs 115
4.3.2打開與保存檔案 116
4.3.3移動游標與滾動螢幕 117
4.3.4編輯文本 118
4.3.5查找與替換文本 118
4.3.6切分視窗 119
4.3.7使用幫助功能 120
4.4小結 120
4.5本章習題 120
第5章使用GCC編譯器(教學視頻:46分鐘) 122
5.1安裝GCC 122
5.2GCC常用選項 122
5.2.1編譯程式 122
5.2.2設定警告信息 125
5.2.3設定最佳化級別 128
5.2.4設定連線器 129
5.2.5其他功能選項 132
5.3小結 133
5.4本章習題 133
第6章調試工具(教學視頻:54分鐘) 134
6.1安裝GDB 134
6.2使用GDB 134
6.2.1啟動/退出GDB 134
6.2.2載入程式 135
6.2.3列出原始碼 135
6.2.4執行程式 136
6.2.5使用幫助功能 137
6.3設定斷點與管理斷點 138
6.3.1設定斷點 138
6.3.2查看斷點信息 139
6.3.3刪除斷點 139
6.3.4刪除指定行上的斷點 140
6.3.5禁用指定的斷點 140
6.3.6設定觀察點 140
6.4顯示數據與修改變數值 141
6.4.1準備示例程式 141
6.4.2顯示變數或表達式的值 142
6.4.3自動顯示變數或表達式的值 143
6.4.4查看變數的數據類型 144
6.4.5修改變數的值 144
6.5執行命令和調用函式 145
6.5.1單步執行 145
6.5.2退出被調用的函式 145
6.5.3執行到指定行 146
6.5.4跳轉執行 146
6.5.5強制調用函式 147
6.6其他常用操作 147
6.6.1查看堆疊信息 147
6.6.2查看源程式信息 148
6.6.3查看暫存器 148
6.6.4查看程式的彙編代碼 148
6.7小結 149
6.8本章習題 149
第7章LinuxC基本套用(教學視頻:75分鐘) 151
7.1字元串的操作 151
7.1.1字元判斷 151
7.1.2初始化字元串 153
7.1.3複製字元串 153
7.1.4比較字元串 155
7.1.5查找字元/字元串 157
7.1.6連線與分割字元串 158
7.2數據轉換 160
7.2.1字母大小寫轉換 160
7.2.2轉換字元串 161
7.3分配與釋放記憶體 163
7.3.1分配記憶體 163
7.3.2釋放記憶體 164
7.3.3更改已分配記憶體的大小 165
7.4時間和日期 165
7.4.1獲取時間和日期 165
7.4.2時間和日期的格式轉換 167
7.4.3計算時間差 169
7.5其他套用 169
7.5.1命令行參數分析 170
7.5.2獲取用戶和用戶組信息 172
7.5.3環境變數操作 175
7.6小結 177
7.7本章習題 177
第2篇套用篇
第8章檔案系統編程(教學視頻:52分鐘) 180
8.1Linux檔案系統簡介 180
8.2使用檔案 180
8.2.1創建或打開檔案 180
8.2.2關閉檔案 184
8.2.3讀寫檔案 184
8.2.4其他檔案操作函式 188
8.3檔案屬性操作 190
8.3.1獲取檔案屬性 190
8.3.2設定檔案屬性 194
8.4目錄操作 195
8.4.1創建目錄檔案 196
8.4.2打開和關閉目錄 197
8.4.3讀取目錄 197
8.4.4獲取和更改當前工作目錄 198
8.5小結 199
8.6本章習題 199
第9章標準輸入輸出(教學視頻:45分鐘) 201
9.1標準輸入輸出的基本操作 201
9.1.1打開檔案 201
9.1.2關閉檔案 202
9.1.3清空緩衝區 202
9.1.4設定緩衝區屬性 203
9.2非格式化輸入輸出 203
9.2.1單位元組輸入輸出 204
9.2.2字元串輸入輸出 207
9.2.3數據塊輸入輸出 209
9.3格式化輸入輸出 212
9.4小結 217
9.5本章習題 217
第10章進程操作(教學視頻:69分鐘) 219
10.1進程的概念 219
10.1.1進程的組成 219
10.1.2進程的狀態 220
10.2Linux進程信息的組成 221
10.2.1Linux進程的狀態 221
10.2.2進程調度信息 222
10.2.3進程的標識符 222
10.2.4進程間通信 223
10.2.5進程連結信息 223
10.2.6進程的時間和定時器信息 223
10.2.7進程的檔案系統信息 224
10.2.8進程的其他信息 224
10.3LinuxC之進程控制 225
10.3.1使用system()函式創建進程 225
10.3.2使用管道創建新進程 226
10.3.3獲取進程信息 227
10.3.4使用fork()函式複製進程 229
10.3.5使用vfork()和exec()函式創建進程 233
10.3.6終止進程 236
10.4守護進程 238
10.4.1創建守護進程 238
10.4.2守護進程的輸出 241
10.5小結 243
10.6本章習題 243
第11章進程間通信(教學視頻:82分鐘) 244
11.1管道 244
11.1.1管道如何工作 244
11.1.2使用匿名管道 244
11.1.3使用命名管道 248
11.2信號 252
11.2.1信號如何工作 252
11.2.2信號的類型 253
11.2.3處理信號 254
11.2.4傳送信號 257
11.2.5使用信號集 261
11.3訊息佇列 262
11.3.1創建或打開訊息佇列 262
11.3.2控制訊息佇列 264
11.3.3讀/寫訊息佇列 265
11.4信號量 269
11.4.1創建或打開信號量集 269
11.4.2控制信號量 270
11.4.3操作信號量 271
11.5共享記憶體 273
11.5.1創建或打開共享記憶體 273
11.5.2讀/寫共享記憶體 275
11.6小結 277
11.7本章習題 277
第12章多執行緒編程(教學視頻:40分鐘) 279
12.1什麼是執行緒 279
12.2執行緒的基本操作 280
12.2.1創建執行緒 280
12.2.2合併執行緒 281
12.2.3終止執行緒 282
12.2.4執行緒屬性 287
12.3執行緒的同步 290
12.3.1使用互斥量 290
12.3.2使用條件變數 292
12.3.3使用信號量 295
12.4小結 297
12.5本章習題 297
第13章網路編程(教學視頻:56分鐘) 299
13.1計算機網路基礎知識 299
13.1.1什麼是OSI參考模型 299
13.1.2什麼是TCP/IP協定棧 300
13.2套接字編程基礎 301
13.2.1套接字編程原理 301
13.2.2創建套接字 302
13.2.3綁定套接字 303
13.2.4監聽網路連線埠 304
13.2.5接收連線請求 305
13.2.6建立連線 305
13.2.7面向連線的數據傳輸 305
13.2.8面向無連線的數據傳輸 306
13.2.9關閉套接字 306
13.3數據流套接字實例 307
13.3.1構建伺服器端 307
13.3.2構建客戶端 308
13.3.3調試程式 310
13.4數據報套接字實例 310
13.4.1構建伺服器端 310
13.4.2構建客戶端 311
13.4.3調試程式 312
13.5伺服器模型 313
13.5.1循環伺服器 313
13.5.2並發伺服器 314
13.5.3多路復用I/O並發伺服器 316
13.6域名系統 318
13.6.1通過域名獲取主機信息 318
13.6.2通過地址獲取主機信息 319
13.6.3獲取本地主機信息 320
13.7小結 320
13.8本章習題 320
第14章LinuxGUI編程(教學視頻:68分鐘) 321
14.1GTK+/Gnome開發簡介 321
14.1.1第一個GTK+應用程式 321
14.1.2信號連線回調函式 323
14.2常用GTK+構件 325
14.2.1使用容器構件 325
14.2.2使用按鈕構件 329
14.2.3使用標籤構件 332
14.2.4使用文本及文本輸入構件 333
14.2.5使用進度條構件 337
14.2.6使用組合框 340
14.2.7使用對話框 343
14.3GUI生成器Glade 348
14.3.1Glade軟體界面 348
14.3.2創建應用程式界面 349
14.3.3C語言代碼聯編 350
14.4小結 352
14.5本章習題 352
第3篇案例篇
第15章客戶端/伺服器端程式(教學視頻:15分鐘) 354
15.1伺服器端程式設計 354
15.2客戶端程式設計 358
15.2.1字元界面客戶端程式 358
15.2.2圖形界面客戶端程式 360
15.3小結 363