《21天學通Linux C編程》是2010年由電子工業出版社出版的書籍。
基本介紹
- 書名:21天學通Linux C編程
- ISBN:7121106221、 9787121106224
- 頁數:418頁
- 出版社:電子工業出版社
- 出版時間:2010年5月1日
- 開本:16
- 叢書名:21天學通系列
內容簡介,目錄,
內容簡介
《21天學通Linux C編程》由淺入深、通俗易懂地講解了Linux系統下的C程式設計。全書共21章,從Linux系統安裝開始,講解了Linux常用命令、Shell編程、C語言基礎、指針與函式、C程式網路編程、圖形界面程式設計等內容。書中通過大量的實例來講解知識要點,讀者可以通過這些實例和練習系統地學習Linux下的C程式設計,提高自己的編程能力。《21天學通Linux C編程》共分7篇。第一篇為Linux基礎篇,介紹Linux編程平台的搭建及文本編輯器的使用;第二篇為shell編程篇,介紹Linux下的常用shell命令與shell編程;第三篇為C程式基礎篇,介紹C程式設計的基礎知識;第四篇為指針與函式篇,重點介紹C語言中指針與函式的概念和用法;第五篇為檔案與目錄篇,介紹C語言中的檔案與目錄操作功能;第六篇為網路編程篇,介紹網路編程的基礎知識和如何使用C語言進行網路編程;第七部分為圖形界面開發篇,介紹基於Linux的C程式圖形界面開發及Glade的使用。
《21天學通Linux C編程》語言通俗易懂,內容豐富,注重理解與實例,知識涵蓋面廣。非常適合C語言的初學者、高校學生、程式開發人員、Linux工作人員閱讀和學習。《21天學通Linux C編程》附贈DVD光碟1張,內容包括超大容量手把手教學視頻、電子教案(PPT)、編程參考寶典電子書、原始碼及各章習題答案。
目錄
第一篇 Linux基礎篇
第1章 Linux編程平台(教學視頻:64分鐘) 25
1.1 Linux發行版的介紹 25
1.1.1 Red Hat Linux 25
1.1.2 Debian Linux 25
1.2 安裝Linux 26
1.2.1 Linux的分區格式 26
1.2.2 在Windows系統中劃分Linux分區 26
1.2.3 安裝Red Hat 9.0 28
1.2.4 GRUB在Windows分區中引導Linux 35
1.3 VMware虛擬機安裝Linux系統 36
1.3.1 VMware軟體安裝 36
1.3.2 新建虛擬計算機 38
1.3.3 VMware的使用 41
1.3.4 在VMware虛擬機中安裝Linux系統 42
1.4 第一個C程式 43
1.4.1 在Linux中編寫C程式代碼 43
1.4.2 編譯程式 44
1.5 小結 44
1.6 習題 45
第2章 使用文本編輯器(教學視頻:39分鐘) 46
2.1 使用vim 46
2.1.1 啟動vim 46
2.1.2 在桌面上創建vim啟動器 47
2.1.3 vim的工作模式 47
2.1.4 保存與打開檔案 47
2.1.5 移動游標 48
2.1.6 插入操作 50
2.1.7 刪除操作 50
2.1.8 取消操作 51
2.1.9 保存操作 51
2.1.10 退出操作 52
2.1.11 查找操作 52
2.1.12 替換操作 52
2.1.13 選項設定 52
2.1.14 調用shell命令 53
2.2 vim使用實例 53
2.2.1 字元的插入與刪除 53
2.2.2 字元的查找與替換 54
2.3 gvim 55
2.3.1 檔案的新建與保存 55
2.3.2 查找與替換 55
2.4 gedit 56
2.4.1 gedit的啟動與打開文本 56
2.4.2 gedit編輯檔案 57
2.4.3 gedit列印檔案 58
2.4.4 gedit的首選項 59
2.5 小結 61
2.6 習題 61
第二篇 shell編程篇
第3章 Linux常用命令(教學視頻:59分鐘) 62
3.1 目錄與檔案命令 62
3.1.1 查看目錄命令pwd 62
3.1.2 切換目錄命令cd 62
3.1.3 查看目錄命令ls 63
3.1.4 建立檔案命令touch 64
3.1.5 建立與刪除資料夾命令mkdir、rmdir 65
3.1.6 檔案複製命令cp 65
3.1.7 檔案移動和更名命令mv 66
3.1.8 刪除檔案與目錄命令rm 66
3.1.9 創建連結命令ln 67
3.1.10 查看檔案信息命令wc 67
3.1.11 檔案查看命令cat 68
3.1.12 查看檔案視圖命令head與tail 68
3.1.13 檔案許可權設定命令chmod 69
3.1.14 查找檔案命令find 70
3.2 man系統幫助命令 70
3.2.1 man手冊的使用方法 71
3.2.2 幫助文檔的結構 71
3.3 小結 72
3.4 習題 72
第4章 shell編程(教學視頻:122分鐘) 74
4.1 bash的使用 74
4.1.1 bash的內部命令與外部命令 74
4.1.2 命令補齊功能 74
4.1.3 命令通配符 75
4.1.4 使用命令的歷史記錄 75
4.1.5 命令的別名 76
4.2 shell程式的基本結構 76
4.3 局部變數 77
4.4 環境變數 78
4.4.1 環境變數的查看 78
4.4.2 訪問環境變數 78
4.4.3 定義環境變數 78
4.4.4 在系統配置檔案中定義環境變數 79
4.4.5 位置變數 79
4.5 shell的運算符 80
4.5.1 變數賦值 80
4.5.2 算術運算符 80
4.6 輸入和輸出 82
4.6.1 echo命令輸出結果 82
4.6.2 read命令讀取信息 83
4.6.3 檔案重定向 84
4.7 引號的使用方法 85
4.7.1 雙引號 85
4.7.2 單引號 85
4.7.3 反引號 86
4.7.4 反斜線 86
4.8 測試語句 86
4.8.1 檔案狀態測試 87
4.8.2 數值測試 87
4.8.3 字元串測試 88
4.8.4 邏輯測試 89
4.9 流程控制結構 89
4.9.1 if語句 89
4.9.3 for語句 90
4.9.5 until語句 91
4.10 綜合練習 92
4.10.1 程式的功能 92
4.10.2 編寫程式的代碼 92
4.11 小結 94
4.12 習題 94
第三篇 C程式基礎篇
第5章 編譯與調試(教學視頻:49分鐘) 95
5.1 編譯的概念和理解 95
5.1.1 程式編譯的過程 95
5.1.2 編譯器 95
5.2 gcc編譯器 96
5.2.1 gcc編譯器簡介 96
5.2.2 gcc對源程式擴展名的支持 96
5.3 C程式的編譯 97
5.3.1 編寫第一個C程式 97
5.3.2 用gcc編譯程式 98
5.3.3 查看gcc的參數 99
5.3.4 設定輸出的檔案 100
5.3.5 查看編譯過程 100
5.3.6 設定編譯的語言 101
5.3.7 設定ANSIC標準 101
5.3.8 編譯C++程式 101
5.4 編譯過程的控制 102
5.4.1 編譯過程簡介 102
5.4.2 控制預處理過程 103
5.4.3 生成彙編代碼 103
5.4.4 生成目標代碼 104
5.4.5 連結生成執行檔 104
5.5 gdb調試程式 105
5.5.1 gdb簡介 105
5.5.2 在程式中加入調試信息 105
5.5.4 啟動gdb 105
5.5.5 載入需要調試的程式 106
5.5.6 查看代碼 106
5.5.7 在程式中加入斷點 106
5.5.8 查看斷點 107
5.5.9 運行程式 107
5.5.10 變數的查看 108
5.6 gdb的幫助與常用命令 109
5.6.1 使用gdb幫助 109
5.6.2 gdb常用命令 109
5.7 編譯程式常見的錯誤與問題 110
5.7.1 邏輯錯誤與語法錯誤 110
5.7.2 C程式中的錯誤與異常 110
5.7.3 編譯中的警告提示 111
5.7.4 找不到包含檔案的錯誤 111
5.7.5 錯誤地使用逗號 111
5.7.6 括弧不匹配錯誤 111
5.8 綜合練習 112
5.8.1 編寫程式 112
5.8.2 編譯檔案 113
5.8.3 調試程式 113
5.9 小結 115
5.10 習題 115
第6章 C語言基礎(教學視頻:70分鐘) 117
6.1 C程式的基本概念 117
6.1.1 C程式的基本結構 117
6.1.2 C程式的一般格式 118
6.1.3 C程式中的注釋 119
6.2 數據類型 119
6.2.1 整型(int) 119
6.2.2 浮點型(float) 120
6.2.3 字元型(char) 121
6.2.4 變數名 122
6.2.5 字元NULL 123
6.3 變數的賦值與輸出 123
6.3.1 變數的賦值 123
6.3.2 printf函式輸出變數 123
6.3.3 scanf函式從鍵盤讀入變數 125
6.4 運算符 126
6.4.1 算術運算符 126
6.4.2 關係運算符 127
6.4.3 邏輯運算符 128
6.5 綜合練習 129
6.6 小結 130
6.7 習題 130
第7章 C程式的常用語句(教學視頻:87分鐘) 132
7.1 流程控制語句 132
7.1.1 if條件語句 132
7.1.2 if語句的嵌套 133
7.1.3 switch選擇執行語句 135
7.1.4 for循環語句 137
7.1.5 for循環的嵌套 138
7.1.6 for循環套用實例:輸出九九乘法口訣表 140
7.1.7 while循環語句 140
7.1.8 do while循環語句 141
7.1.9 轉移控制語句:continue 142
7.1.10 轉移控制語句:break 143
7.1.11 轉移控制語句:return 144
7.2 兩種特殊語句結構 144
7.2.1 三元操作符 145
7.2.2 塊語句 145
7.3 綜合練習 146
7.4 小結 147
7.5 習題 147
第四篇 指針與函式篇
第8章 數組與指針(教學視頻:66分鐘) 149
8.1 數組的理解與操作 149
8.1.1 什麼是數組 149
8.1.2 數組的定義與訪問 150
8.1.3 數組使用實例 151
8.2 指針 152
8.2.1 指針的理解 152
8.2.2 指針操作符 152
8.2.3 指針的定義與訪問 152
8.2.4 指針使用實例 153
8.3 數組與指針 154
8.3.1 數組與指針的關係 154
8.3.2 指針的算術運算 155
8.3.3 字元數組與字元串 156
8.4 二維數組與多維數組 157
8.4.1 二維數組的理解 157
8.4.2 二維數組與指針 158
8.5 實例 159
8.5.1 學生成績統計實例 159
8.5.2 冒泡法排序實例 160
8.5.3 統計字元串中字元 162
8.6 小結 164
8.7 習題 164
第9章 函式(教學視頻:67分鐘) 166
9.1 函式的理解 166
9.1.1 什麼是函式 166
9.1.2 系統函式與庫函式 167
9.1.3 函式的返回值 168
9.1.4 無參函式 169
9.1.5 有參函式 169
9.1.6 函式參數實例 170
9.2 自定義函式 171
9.2.1 自編寫定義函式 171
9.2.2 函式中調用函式 172
9.2.3 函式的聲明 174
9.2.4 遞歸函式 175
9.2.5 main函式的參數argc與argv 176
9.3 函式與指針 177
9.3.1 值調用與引用調用 177
9.3.2 引用調用與指針 178
9.3.3 指針參數簡單實例 179
9.3.4 自定義函式中指針使用實例 180
9.3.5 數組作為參數 181
9.3.6 數組作為函式參數實例 182
9.4 返回值 183
9.4.1 函式返回值的類型 183
9.4.2 函式返回指針 184
9.4.3 函式返回指針實例 185
9.4.4 函式返回結果到參數 186
9.5 綜合練習 186
9.6 小結 187
9.7 習題 188
第10章 字元與字元串處理(教學視頻:66分鐘) 190
10.1 字元測試函式 190
10.1.1 數字或字母測試函式isalnum 190
10.1.2 字母測試函式isalpha 191
10.1.3 可列印字元測試函式isgraph 192
10.1.4 測試大小寫字母函式islower和isupper 193
10.1.5 測試是否是數字isxdigit 193
10.1.6 測試字元是否為符號函式ispunct 194
10.1.7 其他字元測試函式 195
10.2 字元測試函式綜合實例 195
10.3 字元串轉換 197
10.3.1 C程式中的字元串 197
10.3.2 字元串轉換成浮點型函式atof 197
10.3.3 字元串轉換成整型函式atoi 198
10.3.4 字元串轉換成長整型函式atol 199
10.3.5 將浮點型轉換成字元串函式ecvt 200
10.3.6 字母的大寫小轉換函式tolower和toupper 201
10.3.7 其他字元串轉換函式 202
10.4 字元串比較 203
10.4.1 字元串比較函式bcmp 203
10.4.2 字元串大小比較函式memcmp 204
10.4.3 忽略大小寫比較字元串函式strncasecmp 204
10.5 字元串複製 205
10.5.1 字元串複製函式bcopy 205
10.5.2 字元串複製函式memccpy 206
10.5.3 複製字元串函式strcpy 207
10.5.4 字元串複製函式strncpy 208
10.6 字元串的清理與填充 208
10.6.1 字元串清理函式bzero 209
10.6.2 字元串填充函式memset 209
10.7 字元串查找 210
10.7.1 字元查找函式index與rindex 210
10.7.2 字元查找函式memchr 211
10.7.3 字元查找函式strchr與strrchr 211
10.8 字元串的連線與分割 212
10.8.1 字元串連線函式strcat 212
10.8.2 字元串分割函式strtok 213
10.9 綜合練習 214
10.10 小結 216
10.11 習題 216
第11章 結構體(教學視頻:49分鐘) 218
11.1 結構體的操作 218
11.1.1 結構體的理解 218
11.1.2 結構體的定義 218
11.1.3 結構體的訪問 220
11.1.4 結構體數組 222
11.1.5 結構體使用實例 222
11.2 結構體與指針 224
11.2.1 結構體指針的定義 225
11.2.2 結構體指針的訪問 225
11.2.3 結構體作為函式的參數 227
11.2.4 結構體指針作為函式的參數 228
11.2.5 結構體作為函式的返回值 230
11.2.6 結構體指針作為函式的返回值 231
11.3 綜合練習 233
11.3.1 程式的需求分析 233
11.3.2 程式中的函式 234
11.3.3 程式中的結構體與全局變數 234
11.3.4 頭檔案和函式聲明 234
11.3.5 定義結構體和全局變數 235
11.3.6 顯示學生信息的函式 235
11.3.7 程式的選擇選單 235
11.3.8 學生信息輸入函式 237
11.3.9 按姓名查找函式 237
11.3.10 刪除學生函式 238
11.3.11 按年齡查找函式 238
11.3.12 按身高查找函式 239
11.3.13 按性別查找函式 240
11.3.14 程式的主函式 240
11.3.15 程式的運行和調試 242
11.4 小結 243
11.5 習題 243
第12章 時間函式(教學視頻:23分鐘) 245
12.1 常用時間函式 245
12.1.1 返回時間函式time 245
12.2.2 取當前時間函式gmtime 246
11.2.3 字元串格式時間函式ctime 248
12.2.4 字元串格式時間函式asctime 249
12.1.5 取得當地時間函式localtime 250
12.1.6 將時間轉換成秒數函式mktime 251
12.1.7 取得目前的時間函式gettimeofday 251
12.1.8 設定當前時間函式settimeofday 253
12.2 綜合練習 254
12.3 小結 254
12.4 習題 255
第五篇 檔案與目錄篇
第13章 目錄與檔案(教學視頻:115分鐘) 256
13.1 檔案操作的許可權 256
13.2 錯誤處理與錯誤號 257
13.2.1 錯誤定義的理解 257
13.2.2 用錯誤常數顯示錯誤信息 258
13.2.3 用錯誤序號顯示錯誤信息 259
13.3 創建與刪除目錄 259
13.3.1 創建目錄函式mkdir 260
13.3.2 刪除目錄函式rmdir 261
13.4 檔案的創建與刪除 262
13.4.1 創建檔案函式creat 262
13.4.2 刪除檔案函式remove 263
14.4.3 建立臨時檔案函式mkstemp 264
13.5 檔案的打開與關閉 265
13.5.1 打開檔案函式open 266
13.5.2 檔案打開方式的設定 266
13.5.3 打開檔案的許可權 266
13.5.4 檔案打開實例 266
13.5.5 關閉檔案函式close 267
13.6 檔案讀寫 269
13.6.1 在檔案中寫字元串函式write 269
13.6.2 讀取檔案函式read 270
13.6.3 檔案讀寫位置的移動 272
13.6.4 將緩衝區數據寫入到磁碟函式sync 273
13.6.5 將緩衝區數據寫入到磁碟函式fsync 275
13.7 檔案鎖定 276
13.7.1 檔案鎖定的理解 276
13.7.2 檔案鎖定函式flock 277
13.7.3 檔案鎖定函式fcntl 278
13.7.4 檔案鎖定函式fcntl使用實例 279
13.8 檔案的移動與複製 281
13.8.1 檔案的移動函式rename 281
13.8.2 rename函式使用實例 281
13.8.3 檔案複製實例 282
13.9 綜合練習 283
13.9.1 程式功能分析 284
13.9.2 程式的函式 284
13.9.3 包含檔案 284
13.9.4 數據的定義 285
13.9.5 選單函式 285
13.9.6 顯示電話信息函式 286
13.9.7 添加電話號碼函式 286
13.9.8 按姓名查找函式 287
13.9.9 刪除電話號碼函式 287
13.9.10 保存到檔案函式 288
13.9.11 從檔案導入信息函式 288
13.9.12 主函式 289
13.10 小結 291
13.11 習題 291
第14章 檔案I/O(教學視頻:42分鐘) 293
14.1 檔案的打開與關閉 293
14.1.1 檔案打開函式fopen 293
14.1.2 檔案打開函式fdopen 295
14.1.3 打開檔案函式freopen 296
14.1.4 關閉檔案函式fclose 297
14.2 檔案的讀寫 298
14.2.1 字元寫入函式putc與fputc 298
14.2.2 向檔案中寫入字元串函式fputs 299
14.2.3 數據寫入函式fwrite 300
14.3 綜合練習 300
14.4 小結 302
14.5 習題 302
第六篇 網路編程篇
第15章 網路編程(教學視頻:71分鐘) 303
15.1 網路編程的基本概念 303
15.1.1 IP位址 303
15.1.2 連線埠 304
15.1.3 域名 304
15.1.4 TCP與UDP 304
15.2 套接字 305
15.2.1 什麼是套接字 305
15.2.2 套接字相關的數據類型 305
15.2.3 套接字類型 306
15.3 域名與IP位址 306
15.3.1 用域名取得主機的IP位址 306
15.3.2 用IP位址返回域名 308
15.4 網路協定 309
15.4.1 由協定名取得協定數據 309
15.4.2 由協定編號取得協定信息 311
15.4.3 取得系統支持的所有協定 312
15.5 網路服務 313
15.5.1 取得系統支持的網路服務 313
15.5.2 用名稱取得系統所支持的服務 314
15.5.3 由連線埠取得服務名稱 316
15.6 網路地址的轉換 317
15.6.1 將網路地址轉換成整型 317
15.6.2 將長整型數地址轉換成網路地址 318
15.6.3 主機字元順序與網路字元順序的轉換 319
15.7 錯誤處理 319
15.7.1 herror函式顯示錯誤 319
15.7.2 捕獲錯誤編號 320
15.8 綜合練習 321
15.9 小結 321
15.10 習題 322
第16章 無連線的套接字通信(教學視頻:22分鐘) 323
16.1 socket套接字 323
16.1.1 建立socket 323
16.1.2 取得socket狀態 325
16.1.3 設定socket狀態 326
16.2 無連線的套接字通信 327
16.2.1 工作流程 328
16.2.1 信息傳送函式sendto 328
16.2.2 信息接收函式recvfrom 329
16.3 綜合練習 329
16.3.1 無連線套接字通信客戶端 329
16.3.2 無連線套接字通信伺服器 331
16.3.3 測試UDP通信程式 332
16.4 小結 333
16.5 習題 333
第17章 面向連線的套接字通信(教學視頻:76分鐘) 335
17.1 面向連線的套接字通信工作流程 335
17.2 綁定連線埠 336
17.2.1 綁定連線埠函式bind 336
17.2.2 bind函式綁定連線埠實例 337
17.3 監聽與連線 338
17.3.1 等待監聽函式listen 338
17.3.2 listen函式使用實例 338
17.3.3 接受連線函式accept 340
17.3.4 accept函式使用實例 340
17.3.5 請求連線函式connet 342
17.3.6 connet函式使用實例 342
17.4 數據的傳送與接收 343
17.4.1 數據接收函式recv 343
17.4.2 recv函式使用實例 344
17.4.3 信息傳送函式send 345
17.4.4 數據傳輸函式write與read 346
17.4.5 read函式接收數據實例 346
17.5 綜合練習 348
17.5.1 伺服器程式 348
17.5.2 客戶端程式 350
17.5.3 實例程式測試 352
17.6 小結 352
17.7 習題 353
第七篇 圖形界面開發篇
第18章 Linux圖形界面開發基礎(教學視頻:28分鐘) 354
18.1 X Window系統簡介 354
18.1.1 X Window的歷史 354
18.1.2 X Window體系結構 355
18.2 Linux桌面環境 355
18.2.1 KDE 355
18.2.2 GNOME 356
18.3 Linux下的圖形程式開發環境 357
18.3.1 GTK+簡介 357
18.3.2 yum安裝GTK 357
18.3.3 用軟體包管理器安裝GTK 358
18.4 常見問題 359
18.4.1 找不到gtk.h包含檔案的錯誤 359
18.4.2 pkg-config參數有什麼作用 359
18.5 綜合練習 359
18.5.1 編寫程式代碼 359
18.5.2 編譯程式 360
18.5.3 運行程式 361
18.6 小結 361
18.7 習題 361
第19章 圖形界面編程(教學視頻:35分鐘) 363
19.1 視窗 363
19.1.1 最簡單的視窗程式 363
19.1.2 視窗的構建過程 364
19.1.3 開新視窗函式gtk_window_new 364
19.1.4 設定視窗的標題 365
19.1.5 設定視窗的大小與位置 366
19.2 標籤 367
19.2.1 建立一個標籤 367
19.2.2 將標籤添加到視窗中 367
19.2.3 設定與獲取標籤的文本 368
19.3 按鈕 369
19.3.1 添加一個按鈕 370
19.3.2 取得與設定按鈕的標籤 371
19.4 文本框 372
19.4.1 建立文本框 372
19.4.2 獲取與設定文本框數據 373
19.5 綜合練習 374
19.6 小結 375
19.7 習題 375
第20章 界面布局(教學視頻:67分鐘) 377
20.1 表格 377
20.1.1 表格的建立 377
20.1.2 表格中添加元件 378
20.1.3 表格使用實例 379
20.1.4 單元格的合併 380
20.1.5 表格中添加表格 381
20.2 垂直框 383
20.2.1 添加垂直框 383
20.2.2 垂直框中添加元件 384
20.3 水平窗格 385
20.3.1 新建一個窗格 385
20.3.2 窗格中添加元件 387
20.4 Glade 388
20.4.1 Glade簡介 388
20.4.2 使用Glade設計程式界面 388
20.4.3 Glade設計視窗 389
20.4.4 添加表格 392
20.4.5 添加標籤 392
20.4.6 添加文本框 395
20.4.7 添加按鈕 396
20.4.8 添加信號與事件 397
20.4.9 Glade實例 398
20.5 綜合練習 399
20.6 小結 400
20.7 習題 401
第21章 信號與事件(教學視頻:18分鐘) 403
21.1 信號 403
21.1.1 添加信號 403
21.1.2 事件函式的參數 404
21.1.3 在函式中使用全局變數 405
21.2 GTK事件 407
21.3 實例:加法計算器 407
21.3.1 程式功能的分析 407
21.3.2 程式實現 407
21.4 綜合練習 409
21.4.1 程式的功能分析 409
21.4.2 程式的功能模組 410
21.4.3 包含頭檔案與定義全局變數 411
21.4.4 單擊按鈕輸入函式 411
21.4.5 加法運算函式 411
21.4.6 減法運算函式 412
21.4.7 乘法運算函式 413
21.4.8 除法運算函式 413
21.4.9 輸入小數點函式 414
21.4.10 清除數據函式 414
21.4.11 界面構建函式 414
21.4.12 添加事件函式 416
21.4.13 主函式 417
21.4.14 程式的編譯和運行 417
21.5 小結 418
21.6 習題 418