Linux C從入門到精通

Linux C從入門到精通

《Linux C從入門到精通》是由明日科技編寫,清華大學出版社出版的一本書籍。

基本介紹

  • 作者:明日科技
  • ISBN:9787302284857
  • 頁數:462
  • 定價:69.80元
  • 出版社:清華大學出版社
  • 出版時間:2012-12
  • 裝幀:平裝
  • 副標題:Linux C從入門到精通
內容介紹,作品目錄,

內容介紹

《Linux C從入門到精通》從初學者的角度出發,通過通俗易懂的語言,豐富多彩的實例,詳細介紹了在Linux系統下使用C語言進行應用程式開發應該掌握的各方面技術。全書共分20章,包括Linux系統概述、C語言基礎、記憶體管理、基本編輯器VIM和EmacsGCC編譯器、GDB調試工具、進程控制、進程間通信、檔案操作、檔案的輸入/輸出操作、信號及信號處理、網路編程、make編譯基礎、Linux系統下的C語言與資料庫、集成開發環境、界面開發基礎、界面布局、界面構件開發、Glade設計程式界面、MP3音樂播放器。所有知識都結合具體實例進行介紹,涉及的程式代碼給出了詳細的注釋,可以使讀者輕鬆領會Linux系統下的C語言應用程式開發的精髓,快速提高開發技能。另外,《Linux C從入門到精通》除了紙質內容之外,配書光碟中還給出了海量開發資源庫,主要內容如下:語音視頻講解:總時長4小時,共30段;模組資源庫:15個常用模組;測試題庫系統:616道能力測試題目;PPT電子教案;實例資源庫:881個經典範例;項目案例資源庫:15個實用項目;面試資源庫:371道企業面試真題。

作品目錄

第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

相關詞條

熱門詞條

聯絡我們