第1篇 基 礎 知 識
第1章 Linux係統概述 3
視頻講解:12分鍾
1.1 Linux的起源與發展 4
1.1.1 GNU項目的前前後後 4
1.1.2 Linux的誕生 4
1.1.3 Linux的現狀 5
1.2 Linux的內核與版本 5
1.2.1 Linux內核的介紹 5
1.2.2 Linux對硬件平颱的支持 6
1.2.3 常見Linux的發行版本 6
1.3 Linux係統的安裝 6
1.3.1 Linux係統安裝的硬件要求 7
1.3.2 圖形化安裝Linux 7
1.3.3 第一次啓動Linux係統 12
1.4 小結 13
第2章 C語言基礎 15
視頻講解:34分鍾
2.1 C語言概述 16
2.2 數據類型 16
2.2.1 基本類型 17
2.2.2 構造類型 19
2.2.3 指針類型 20
2.2.4 空類型 22
2.3 運算符和錶達式 22
2.3.1 運算符 22
2.3.2 錶達式 24
2.4 函數 24
2.5 程序語句 26
2.5.1 控製語句 27
2.5.2 函數調用語句 28
2.5.3 錶達式語句 28
2.5.4 空語句 28
2.5.5 復閤語句 28
2.6 預處理命令 29
2.6.1 宏定義 29
2.6.2 文件包含 30
2.7 小結 30
2.8 實踐與練習 30
第3章 內存管理 31
視頻講解:9分鍾
3.1 內存分類 32
3.1.1 動態內存 32
3.1.2 靜態內存 32
3.1.3 動態內存與靜態內存的區彆 33
3.2 內存管理的基本操作 33
3.2.1 分配內存 33
3.2.2 釋放內存 36
3.3 鏈錶 36
3.4 小結 38
3.5 實踐與練習 38
第4章 基本編輯器VIM和Emacs 39
視頻講解:12分鍾
4.1 初識VIM 40
4.1.1 VIM的進入與退齣 40
4.1.2 VIM基本模式 40
4.2 VIM的基本操作 41
4.2.1 VIM的命令行模式操作 41
4.2.2 VIM的編輯模式操作 43
4.2.3 VIM的底行模式操作 43
4.3 初識Emacs 44
4.4 Emacs的基本操作 44
4.4.1 啓動Emacs 44
4.4.2 基本操作 45
4.5 小結 46
第5章 GCC編譯器 47
視頻講解:26分鍾
5.1 初識GCC編譯器 48
5.1.1 第一次編譯 48
5.1.2 GCC選項概述 48
5.1.3 警告 49
5.1.4 GCC調試 50
5.1.5 代碼優化 52
5.2 GCC編譯的基本流程 54
5.2.1 C預處理 54
5.2.2 編譯 54
5.2.3 匯編 54
5.2.4 鏈接 54
5.3 其他編譯工具簡介 55
5.3.1 C++編譯器G++ 55
5.3.2 EGCS 55
5.3.3 F2C和P2C 55
5.4 小結 55
第6章 GDB調試工具 57
視頻講解:40分鍾
6.1 初識GDB調試器 58
6.1.1 GDB調試器概述 58
6.1.2 用GDB調試簡單程序 58
6.2 GDB調試器的基本功能與常用命令 60
6.2.1 啓動調試程序功能及其命令 61
6.2.2 使用斷點功能及其命令 62
6.2.3 檢查數據的功能及其命令 64
6.2.4 使用觀察窗口功能及其命令 67
6.2.5 檢查棧信息功能及其命令 67
6.2.6 檢查源代碼功能及其命令 68
6.2.7 改變程序的運行功能及其命令 70
6.3 多綫程程序調試 71
6.4 Linux平颱上的其他調試工具 71
6.5 小結 72
第2篇 核 心 技 術
第7章 進程控製 75
視頻講解:57分鍾
7.1 進程概述 76
7.1.1 進程的定義 76
7.1.2 進程的相關信息 77
7.2 進程的基本操作 78
7.2.1 進程創建 78
7.2.2 進程等待 84
7.2.3 進程結束 88
7.3 多個進程間的關係 89
7.3.1 進程組 89
7.3.2 時間片的分配 90
7.4 綫程 92
7.4.1 綫程概述 92
7.4.2 綫程的屬性 92
7.5 進程的特殊操作 94
7.5.1 獲取進程標識 94
7.5.2 設置進程標識 98
7.6 小結 99
7.7 實踐與練習 99
第8章 進程間通信 101
視頻講解:41分鍾
8.1 進程間通信概述 102
8.1.1 進程間通信的工作原理 102
8.1.2 進程間通信的主要分類 102
8.2 管道與命名管道 102
8.2.1 管道基本定義 103
8.2.2 管道創建和管道關閉 103
8.2.3 pipe()函數實現管道通信 103
8.2.4 命名管道基本定義 106
8.2.5 在Shell中創建命名管道 106
8.2.6 mkfifo()函數創建命名管道 107
8.3 共享內存 109
8.3.1 SYSV子係統的基本知識 109
8.3.2 共享內存相關操作 110
8.3.3 共享內存實現進程間通信 113
8.4 信號量 115
8.4.1 信號量的工作原理 115
8.4.2 信號量的相關操作 116
8.4.3 信號量實現進程間通信 118
8.5 消息隊列 120
8.5.1 消息隊列的相關操作 121
8.5.2 消息隊列實現進程間通信 123
8.6 小結 125
8.7 實踐與練習 125
第9章 文件操作 127
視頻講解:37分鍾
9.1 文件初探 128
9.1.1 文件與文件係統的概念 128
9.1.2 文件的屬性 128
9.1.3 文件的相關信息 129
9.2 文件的相關操作 130
9.2.1 修改文件屬性 131
9.2.2 復製文件描述符 134
9.2.3 獲取文件信息 135
9.2.4 文件的其他操作 136
9.3 特殊文件的操作 137
9.3.1 目錄文件的操作 137
9.3.2 鏈接文件的操作 141
9.3.3 設備文件 143
9.4 小結 144
9.5 實踐與練習 144
第10章 文件的輸入/輸齣操作 145
視頻講解:30分鍾
10.1 文件I/O操作概述 146
10.1.1 文件描述符簡介 146
10.1.2 數據流概述 146
10.2 基於文件描述符的I/O操作 147
10.2.1 文件的打開與關閉 147
10.2.2 文件的讀寫操作 149
10.2.3 文件的定位 150
10.3 基於數據流的I/O操作 152
10.3.1 文件的打開與關閉 153
10.3.2 字符輸入/輸齣 154
10.3.3 字符串輸入/輸齣 156
10.3.4 數據塊輸入/輸齣 157
10.3.5 格式化輸入/輸齣 158
10.3.6 操作讀寫位置的函數 159
10.3.7 C標準庫的I/O緩衝區 162
10.4 小結 163
10.5 實踐與練習 164
第11章 信號及信號處理 165
視頻講解:23分鍾
11.1 信號概述 166
11.1.1 在終端中查看常見的信號 166
11.1.2 信號處理 166
11.2 産生信號 167
11.2.1 kill()函數 167
11.2.2 raise()函數 168
11.2.3 alarm()函數 168
11.3 捕捉信號 168
11.3.1 signal()函數 169
11.3.2 sigaction()函數 171
11.4 信號的阻塞 172
11.4.1 sigprocmask()函數 173
11.4.2 sigsuspend()函數 173
11.4.3 sigpending()函數 173
11.5 信號處理的安全問題 175
11.6 小結 176
11.7 實踐與練習 176
第12章 網絡編程 177
視頻講解:30分鍾
12.1 網絡編程的基本原理 178
12.1.1 計算機網絡 178
12.1.2 TCP/IP協議 179
12.1.3 IP地址簡介 179
12.1.4 套接字編程原理 182
12.2 TCP套接字編程 187
12.3 UDP套接字編程 190
12.3.1 數據傳輸係統調用 191
12.3.2 基於UDP協議的C/S機製的網絡
通信的工作原理 192
12.3.3 基於UDP的簡單網絡通信實例 193
12.4 原始套接字編程 195
12.4.1 原始套接字定義 196
12.4.2 原始套接字係統調用 196
12.4.3 原始套接字的發送與接收 197
12.4.4 報文處理 197
12.5 小結 200
12.6 實踐與練習 200
第13章 make編譯基礎 201
視頻講解:1小時54分鍾
13.1 通過實例認識make 202
13.1.1 Makefile的導入 202
13.1.2 make是如何工作的 206
13.1.3 Makefile中使用變量 207
13.1.4 讓make自動推導 208
13.1.5 清空目標文件的規則 209
13.2 make概述 209
13.2.1 Makefile中有什麼 209
13.2.2 Makefile的文件名 210
13.2.3 包含其他Makefile文件 210
13.2.4 變量MAKEFILES 212
13.2.5 變量MAKEFILE_LIST 213
13.2.6 其他特殊變量 213
13.2.7 Makefile文件的重建 213
13.2.8 重載另外一個Makefile 215
13.2.9 make如何解析Makefile文件 215
13.2.10 總結 216
13.3 Makefile基本規則 217
13.3.1 規則舉例 217
13.3.2 規則語法 218
13.3.3 依賴的類型 219
13.3.4 文件名使用通配符 219
13.3.5 目錄搜尋 221
13.3.6 Makefile僞目標 226
13.3.7 強製目標(沒有命令或依賴的規則) 229
13.3.8 空目標文件 229
13.3.9 Makefile的特殊目標 230
13.3.10 多目標 231
13.3.11 多規則目標 232
13.3.12 靜態模式 233
13.3.13 雙冒號規則 235
13.3.14 自動産生依賴 236
13.3.15 書寫命令 238
13.4 變量的基本操作 242
13.4.1 變量的基礎 243
13.4.2 變量中的變量 243
13.4.3 變量高級用法 245
13.4.4 追加變量值 247
13.4.5 override指示符 248
13.4.6 多行變量 248
13.4.7 環境變量 249
13.4.8 目標變量 249
13.4.9 模式變量 250
13.5 條件判斷 250
13.5.1 示例 250
13.5.2 語法 251
13.6 基本函數的使用 253
13.6.1 函數的調用語法 253
13.6.2 字符串處理函數 254
13.6.3 文件名操作函數 257
13.6.4 foreach()函數 259
13.6.5 if()函數 260
13.6.6 call()函數 260
13.6.7 origin()函數 261
13.6.8 shell()函數 262
13.6.9 控製make的函數 262
13.7 make的運行 263
13.7.1 make的退齣碼 263
13.7.2 指定Makefile 263
13.7.3 指定目標 263
13.7.4 檢查規則 265
13.7.5 make的參數 265
13.8 隱含規則 267
13.8.1 使用隱含規則 268
13.8.2 隱含規則一覽 269
13.8.3 隱含規則使用的變量 270
13.8.4 隱含規則鏈 271
13.8.5 模式規則 272
13.8.6 後綴規則 275
13.8.7 隱含規則搜索算法 276
13.9 make工具與函數庫 277
13.9.1 函數庫文件的成員 277
13.9.2 函數庫成員的隱含規則 278
13.9.3 函數庫文件的後綴規則 278
13.9.4 注意事項 278
13.10 小結 278
13.11 實踐與練習 279
第14章 Linux係統下的C語言與
數據庫 281
視頻講解:12分鍾
14.1 MySQL數據庫簡介 282
14.2 安裝和連接MySQL數據庫 282
14.2.1 安裝MySQL數據庫 282
14.2.2 啓動和關閉MySQL 283
14.3 連接操作MySQL 285
14.3.1 MySQL常用數據庫操作函數 285
14.3.2 連接MySQL數據 287
14.3.3 查詢錶記錄 288
14.3.4 插入錶記錄 289
14.3.5 修改錶記錄 290
14.3.6 刪除錶記錄 290
14.4 Oracle數據庫簡介 291
14.5 Oracle數據庫的安裝 292
14.5.1 軟硬件要求 292
14.5.2 安裝Oracle 11g數據庫 295
14.5.3 創建監聽和數據庫 296
14.6 連接Oracle數據庫 300
14.7 小結 302
14.8 實踐與練習 302
第15章 集成開發環境 303
視頻講解:13分鍾
15.1 Eclipse與CDT簡介 304
15.2 安裝和配置Eclipse 305
15.2.1 安裝Eclipse 305
15.2.2 配置Eclipse的CDT 307
15.3 使用Eclipse開發C代碼 308
15.3.1 編寫運行Hello World 308
15.3.2 CDT的相關功能 310
15.3.3 調試C/C++的項目 310
15.4 小結 311
第3篇 高 級 應 用
第16章 界麵開發基礎 315
視頻講解:23分鍾
16.1 Linux常用桌麵環境 316
16.1.1 麵闆介紹 316
16.1.2 桌麵圖標介紹 317
16.1.3 桌麵背景 318
16.2 glib庫介紹 319
16.2.1 類型定義 319
16.2.2 glib的宏 319
16.2.3 內存管理 320
16.2.4 字符串處理 321
16.2.5 數據結構 323
16.3 GObject對象介紹 325
16.4 圖形引擎Cairo介紹 326
16.5 多媒體庫介紹 328
16.5.1 元件和插件 328
16.5.2 襯墊 329
16.5.3 數據、緩衝區和事件 329
16.5.4 緩衝區的分配 330
16.5.5 MIME類型和屬性 330
16.6 小結 330
16.7 實踐與練習 330
第17章 界麵布局 331
視頻講解:34分鍾
17.1 窗體 332
17.1.1 初始化 332
17.1.2 建立窗口 332
17.1.3 結束應用程序 334
17.1.4 迴調函數 334
17.1.5 其他窗體函數 336
17.2 組裝盒構件 337
17.2.1 組裝盒的原理 337
17.2.2 盒的細節 338
17.2.3 組裝盒程序 339
17.2.4 用錶組裝 343
17.2.5 錶組裝程序 345
17.3 容器 347
17.3.1 事件盒 347
17.3.2 對齊構件 347
17.3.3 固定容器 348
17.3.4 布局容器 349
17.3.5 框架 350
17.3.6 分欄窗口構件 352
17.3.7 視角 353
17.3.8 滾動窗口 353
17.3.9 按鈕盒 355
17.3.10 工具欄 357
17.3.11 筆記本 362
17.4 小結 366
17.5 實踐與練習 366
第18章 界麵構件開發 367
視頻講解:1小時4分鍾
18.1 基本界麵構件 368
18.1.1 按鈕構件 368
18.1.2 調整對象 372
18.1.3 範圍構件 374
18.1.4 標簽 381
18.1.5 箭頭 384
18.1.6 工具提示對象 386
18.1.7 進度條 386
18.1.8 對話框 390
18.1.9 標尺 391
18.2 雜項構件 394
18.2.1 狀態欄 394
18.2.2 文本輸入構件 396
18.2.3 微調按鈕 398
18.2.4 組閤框 404
18.2.5 日曆 406
18.2.6 顔色選擇 414
18.2.7 文件選擇 415
18.3 RC文件 416
18.4 小結 417
18.5 實踐與練習 417
第19章 Glade設計程序界麵 419
視頻講解:23分鍾
19.1 Glade簡介 420
19.2 構造圖形界麵 421
19.2.1 添加窗體 421
19.2.2 添加容器 427
19.2.3 添加構件 433
19.2.4 設置構件屬性 436
19.2.5 添加事件和迴調 437
19.3 C語言代碼聯編 438
19.3.1 GtkBuilder代碼連接基礎 439
19.3.2 GtkBuilder代碼連接實例 441
19.4 小結 443
19.5 實踐與練習 443
第4篇 項 目 實 戰
第20章 MP3音樂播放器 447
視頻講解:13分鍾
20.1 GStreamer簡介 448
20.2 界麵設計 449
20.3 代碼設計 451
20.3.1 建立工程文件 451
20.3.2 主程序設計 452
20.3.3 生成playbin對象 453
20.3.4 打開文件 457
20.3.5 播放MP3 458
20.3.6 暫停播放 459
20.3.7 停止播放 459
20.3.8 界麵更新 460
20.3.9 播放控製 461
20.4 小結 463
· · · · · · (
收起)