Linux C從入門到精通(第2版)

Linux C從入門到精通(第2版)

《Linux C從入門到精通(第2版)》是2018年10月清華大學出版社出版的圖書,作者是明日科技。

基本介紹

  • 中文名:Linux C從入門到精通(第2版)
  • 作者:明日科技
  • 出版時間:2018年10月
  • 出版社:清華大學出版社
  • ISBN:9787302498803
  • 定價:89.8 元
內容簡介,圖書目錄,

內容簡介

《Linux C從入門到精通(第2版)》從初學者的角度出發,通過通俗易懂的語言,豐富多彩的實例,詳細介紹了在Linux系統下使用C 語言進行應用程式開發應該掌握的各方面技術。全書共20章,包括Linux系統概述、C語言基礎、記憶體管理、基本編輯器VIM和Emacs、GCC編譯器、GDB調試工具、進程控制、進程間通信、檔案操作、檔案的輸入/輸出操作、信號及信號處理、網路編程、make編譯基礎、Linux系統下的C 語言與資料庫、集成開發環境、界面開發基礎、界面布局、界面構件開發、Glade設計程式界面、MP3 音樂播放器。

圖書目錄

第1 篇 基 礎 知 識
第1 章 Linux 系統概述 2
視頻講解:12 分鐘
1.1 Linux 的起源與發展 3
1.1.1 GNU 項目的前前後後 3
1.1.2 Linux 的誕生 . 3
1.1.3 Linux 的現狀 . 4
1.2 Linux 的核心與版本 4
1.2.1 Linux 核心的介紹 . 4
1.2.2 Linux 對硬體平台的支持 . 5
1.2.3 常見Linux 的發行版本 5
1.3 Linux 系統的安裝 5
1.3.1 Linux 系統安裝的硬體要求 . 6
1.3.2 圖形化安裝Linux . 6
1.3.3 第一次啟動Linux 系統 11
1.4 小結 13
第2 章 C 語言基礎 14
視頻講解:35 分鐘
2.1 C 語言概述 . 15
2.2 數據類型 15
2.2.1 基本類型 16
2.2.2 構造類型 18
2.2.3 指針類型 20
2.2.4 空類型 21
2.3 運算符和表達式 21
2.3.1 運算符 21
2.3.2 表達式 23
2.4 函式 23
2.5 程式語句 25
2.5.1 控制語句 26
2.5.2 函式調用語句 26
2.5.3 表達式語句 27
2.5.4 空語句 27
2.5.5 複合語句 27
2.6 預處理命令 27
2.6.1 宏定義 28
2.6.2 檔案包含 29
2.7 小結 29
2.8 實踐與練習 29
第3 章 記憶體管理 30
視頻講解:15 分鐘
3.1 記憶體分類 31
3.1.1 動態記憶體 31
3.1.2 靜態記憶體 31
3.1.3 動態記憶體與靜態記憶體的區別 32
3.2 記憶體管理的基本操作 32
3.2.1 分配記憶體 32
3.2.2 釋放記憶體 35
3.3 鍊表 35
3.4 小結 37
3.5 實踐與練習 37
第4 章 基本編輯器VIM 和Emacs . 38
視頻講解:12 分鐘
4.1 初識VIM . 39
4.1.1 VIM 的進入與退出 . 39
4.1.2 VIM 基本模式 . 39
4.2 VIM 的基本操作 . 40
4.2.1 VIM 的命令行模式操作 . 40
4.2.2 VIM 的編輯模式操作 . 42
4.2.3 VIM 的底行模式操作 . 42
4.3 初識Emacs . 43
4.4 Emacs 的基本操作 . 43
4.4.1 啟動Emacs 43
4.4.2 基本操作 44
4.5 小結 46
第5 章 GCC 編譯器 47
視頻講解:27 分鐘
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 編譯的基本流程 . 53
5.2.1 C 預處理 54
5.2.2 編譯 . 54
5.2.3 彙編 . 54
5.2.4 連結 54
5.3 其他編譯工具簡介 54
5.3.1 C++編譯器G++ . 55
5.3.2 EGCS 55
5.3.3 F2C 和P2C 55
5.4 小結 55
第6 章 GDB 調試工具 . 56
視頻講解:31 分鐘
6.1 初識GDB 調試器 57
6.1.1 GDB 調試器概述 . 57
6.1.2 用GDB 調試簡單程式 58
6.2 GDB 調試器的基本功能與常用命令 . 59
6.2.1 啟動調試程式功能及其命令 60
6.2.2 使用斷點功能及其命令 61
6.2.3 檢查數據的功能及其命令 63
6.2.4 使用觀察視窗功能及其命令 66
6.2.5 檢查棧信息功能及其命令 66
6.2.6 檢查原始碼功能及其命令 67
6.2.7 改變程式的運行功能及其命令 69
6.3 多執行緒程式調試 70
6.4 Linux 平台上的其他調試工具 71
6.5 小結 71
第2 篇 核 心 技 術
第7 章 進程控制 74
視頻講解:57 分鐘
7.1 進程概述 75
7.1.1 進程的定義 75
7.1.2 進程的相關信息 76
7.2 進程的基本操作 77
7.2.1 進程創建 77
7.2.2 進程等待 83
7.2.3 進程結束 87
7.3 多個進程間的關係 89
7.3.1 進程組 89
7.3.2 時間片的分配 90
7.4 執行緒 91
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 章 進程間通信 100
視頻講解:41 分鐘
8.1 進程間通信概述 101
8.1.1 進程間通信的工作原理 .101
8.1.2 進程間通信的主要分類 .101
8.2 管道與命名管道 101
8.2.1 管道基本定義 .102
8.2.2 管道創建和管道關閉 .102
8.2.3 pipe( )函式實現管道通信 .102
8.2.4 命名管道基本定義 .105
8.2.5 在Shell 中創建命名管道 .105
8.2.6 mkfifo( )函式創建命名管道 .106
8.3 共享記憶體 108
8.3.1 SYSV 子系統的基本知識 108
8.3.2 共享記憶體相關操作 .109
8.3.3 共享記憶體實現進程間通信 .112
8.4 信號量 114
8.4.1 信號量的工作原理 .114
8.4.2 信號量的相關操作 .115
8.4.3 信號量實現進程間通信 .117
8.5 訊息佇列 119
8.5.1 訊息佇列的相關操作 .120
8.5.2 訊息佇列實現進程間通信 .122
8.6 小結 124
8.7 實踐與練習 124
第9 章 檔案操作 125
視頻講解:37 分鐘
9.1 檔案初探 126
9.1.1 檔案與檔案系統的概念 .126
9.1.2 檔案的屬性 .126
9.1.3 檔案的相關信息 .127
9.2 檔案的相關操作 128
9.2.1 修改檔案屬性 .129
9.2.2 複製檔案描述符 .132
9.2.3 獲取檔案信息 .133
9.2.4 檔案的其他操作 .134
9.3 特殊檔案的操作 135
9.3.1 檔案的操作 .135
9.3.2 連結檔案的操作 .139
9.3.3 設備檔案 142
9.4 小結 142
9.5 實踐與練習 143
第10 章 檔案的輸入/輸出操作 . 144
視頻講解:30 分鐘
10.1 檔案I/O 操作概述 . 145
10.1.1 檔案描述符簡介 145
10.1.2 數據流概述 145
10.2 基於檔案描述符的I/O 操作 . 146
10.2.1 檔案的打開與關閉 146
10.2.2 檔案的讀寫操作 148
10.2.3 檔案的定位 149
10.3 基於數據流的I/O 操作 . 152
10.3.1 檔案的打開與關閉 152
10.3.2 字元輸入/輸出 . 153
10.3.3 字元串輸入/輸出 . 156
10.3.4 數據塊輸入/輸出 . 157
10.3.5 格式化輸入/輸出 . 157
10.3.6 操作讀寫位置的函式 159
10.3.7 C 標準庫的I/O 緩衝區 . 161
10.4 小結 163
10.5 實踐與練習 163
第11 章 信號及信號處理 . 164
視頻講解:23 分鐘
11.1 信號概述 165
11.1.1 在終端中查看常見的信號 165
11.1.2 信號處理 165
11.2 產生信號 166
11.2.1 kill( )函式 166
11.2.2 raise( )函式 167
11.2.3 alarm( )函式 167
11.3 捕捉信號 167
11.3.1 signal( )函式 168
11.3.2 sigaction( )函式 . 170
11.4 信號的阻塞 171
11.4.1 sigprocmask( )函式 . 172
11.4.2 sigsuspend( )函式 172
11.4.3 sigpending( )函式.172
11.5 信號處理的安全問題 174
11.6 小結 175
11.7 實踐與練習 175
第12 章 網路編程 176
視頻講解:30 分鐘
12.1 網路編程的基本原理 177
12.1.1 計算機網路 .177
12.1.2 TCP/IP 協定 178
12.1.3 IP 地址簡介 178
12.1.4 套接字編程原理 .181
12.2 TCP 套接字編程 186
12.3 UDP 套接字編程 . 189
12.3.1 數據傳輸系統調用 .190
12.3.2 基於UDP 協定的C/S 機制的網路通信的工
作原理 .191
12.3.3 基於UDP 的簡單網路通信實例 .191
12.4 原始套接字編程 194
12.4.1 原始套接字定義 .195
12.4.2 原始套接字系統調用 .195
12.4.3 原始套接字的傳送與接收 .196
12.4.4 報文處理 .196
12.5 小結 199
12.6 實踐與練習 199
第13 章 make 編譯基礎 200
視頻講解:1 小時54 分鐘
13.1 通過實例認識make . 201
13.1.1 Makefile 的導入 .201
13.1.2 make 是如何工作的 .205
13.1.3 Makefile 中使用變數 .206
13.1.4 讓make 自動推導 207
13.1.5 清空目標檔案的規則 .208
13.2 make 概述 . 208
13.2.1 Makefile 中有什麼 .208
13.2.2 Makefile 的檔案名稱 .209
13.2.3 包含其他Makefile 檔案 209
13.2.4 變數MAKEFILES .211
13.2.5 變數MAKEFILE_LIST . 211
13.2.6 其他特殊變數 212
13.2.7 Makefile 檔案的重建 . 212
13.2.8 重載另外一個Makefile . 213
13.2.9 make 如何解析Makefile 檔案 214
13.2.10 總結 215
13.3 Makefile 基本規則 . 215
13.3.1 規則舉例 216
13.3.2 規則語法 216
13.3.3 依賴的類型 217
13.3.4 檔案名稱使用通配符 218
13.3.5 搜尋 220
13.3.6 Makefile 偽目標 . 225
13.3.7 強制目標(沒有命令或依賴的規則) . 227
13.3.8 空目標檔案 228
13.3.9 Makefile 的特殊目標 . 228
13.3.10 多目標 230
13.3.11 多規則目標 231
13.3.12 靜態模式 231
13.3.13 雙冒號規則 234
13.3.14 自動產生依賴 234
13.3.15 書寫命令 236
13.4 變數的基本操作 241
13.4.1 變數的基礎 241
13.4.2 變數中的變數 242
13.4.3 變數高級用法 244
13.4.4 追加變數值 246
13.4.5 override 指示符 246
13.4.6 多行變數 247
13.4.7 環境變數 247
13.4.8 目標變數 247
13.4.9 模式變數 248
13.5 條件判斷 248
13.5.1 示例 249
13.5.2 語法 249
13.6 基本函式的使用 251
13.6.1 函式的調用語法 251
13.6.2 字元串處理函式 252
13.6.3 檔案名稱操作函式 .255
13.6.4 foreach( )函式 257
13.6.5 if( )函式 .258
13.6.6 call( )函式 258
13.6.7 origin( )函式 259
13.6.8 shell( )函式 260
13.6.9 控制make 的函式 260
13.7 make 的運行 . 261
13.7.1 make 的退出碼 .261
13.7.2 指定Makefile .261
13.7.3 指定目標 .261
13.7.4 檢查規則 .263
13.7.5 make 的參數 .263
13.8 隱含規則 265
13.8.1 使用隱含規則 .266
13.8.2 隱含規則一覽 .267
13.8.3 隱含規則使用的變數 .268
13.8.4 隱含規則鏈 .269
13.8.5 模式規則 .270
13.8.6 後綴規則 .273
13.8.7 隱含規則搜尋算法 .274
13.9 make 工具與函式館 . 275
13.9.1 函式館檔案的成員 .275
13.9.2 函式館成員的隱含規則 .276
13.9.3 函式館檔案的後綴規則 .276
13.9.4 注意事項 .276
13.10 小結 277
13.11 實踐與練習 277
第14 章 Linux 系統下的C 語言與資料庫 278
視頻講解:13 分鐘
14.1 MySQL 資料庫簡介 279
14.2 安裝和連線MySQL 資料庫 . 279
14.2.1 安裝MySQL 資料庫 . 279
14.2.2 啟動和關閉MySQL 280
14.3 連線操作MySQL 282
14.3.1 MySQL 常用資料庫操作函式 282
14.3.2 連線MySQL 數據 . 284
14.3.3 查詢表記錄 285
14.3.4 插入表記錄 286
14.3.5 修改表記錄 287
14.3.6 刪除表記錄 287
14.4 Oracle 資料庫簡介 . 288
14.5 Oracle 資料庫的安裝 . 289
14.5.1 軟硬體要求 289
14.5.2 安裝Oracle 11g 資料庫 . 292
14.5.3 創建監聽和資料庫 293
14.6 連線Oracle 資料庫 297
14.7 小結 299
14.8 實踐與練習 299
第15 章 集成開發環境 . 300
視頻講解:13 分鐘
15.1 Eclipse 與CDT 簡介 . 301
15.2 安裝和配置Eclipse . 302
15.2.1 安裝Eclipse . 302
15.2.2 配置Eclipse 的CDT . 304
15.3 使用Eclipse 開發C 代碼 305
15.3.1 編寫運行Hello World . 305
15.3.2 CDT 的相關功能 . 307
15.3.3 調試C/C++的項目 307
15.4 小結 308
第3 篇 高 級 應 用
第16 章 界面開發基礎 310
視頻講解:23 分鐘
16.1 Linux 常用桌面環境 311
16.1.1 面板介紹 311
16.1.2 桌面圖示介紹 312
16.1.3 桌面背景 313
16.2 glib 庫介紹 . 314
16.2.1 類型定義 .314
16.2.2 glib 的宏 .314
16.2.3 記憶體管理 .315
16.2.4 字元串處理 .316
16.2.5 數據結構 .318
16.3 GObject 對象介紹 321
16.4 圖形引擎Cairo 介紹 . 322
16.5 多媒體庫介紹 323
16.5.1 元件和外掛程式 .323
16.5.2 襯墊 324
16.5.3 數據、緩衝區和事件 .324
16.5.4 緩衝區的分配 .325
16.5.5 MIME 類型和屬性 .325
16.6 小結 326
16.7 實踐與練習 326
第17 章 界面布局 327
視頻講解:34 分鐘
17.1 窗體 328
17.1.1 初始化 .328
17.1.2 建立視窗 .328
17.1.3 結束應用程式 .330
17.1.4 回調函式 .330
17.1.5 其他窗體函式 .332
17.2 組裝盒構件 333
17.2.1 組裝盒的原理 .334
17.2.2 盒的細節 .334
17.2.3 組裝盒程式 .335
17.2.4 用表組裝 .339
17.2.5 表組裝程式 .341
17.3 容器 343
17.3.1 事件盒 .343
17.3.2 對齊構件 .343
17.3.3 固定容器 .344
17.3.4 布局容器 .345
17.3.5 框架 346
17.3.6 分欄視窗構件 .348
17.3.7 視角 349
17.3.8 滾動視窗 349
17.3.9 按鈕盒 351
17.3.10 工具列 353
17.3.11 筆記本 358
17.4 小結 362
17.5 實踐與練習 362
第18 章 界面構件開發 . 363
視頻講解:1 小時3 分鐘
18.1 基本界面構件 364
18.1.1 按鈕構件 364
18.1.2 調整對象 368
18.1.3 範圍構件 370
18.1.4 標籤 377
18.1.5 箭頭 380
18.1.6 工具提示對象 382
18.1.7 進度條 382
18.1.8 對話框 386
18.1.9 標尺 387
18.2 雜項構件 390
18.2.1 狀態欄 390
18.2.2 文本輸入構件 392
18.2.3 微調按鈕 394
18.2.4 組合框 400
18.2.5 日曆 402
18.2.6 顏色選擇 409
18.2.7 檔案選擇 410
18.3 RC 檔案 411
18.4 小結 412
18.5 實踐與練習 412
第19 章 Glade 設計程式界面 413
視頻講解:23 分鐘
19.1 Glade 簡介 414
19.2 構造圖形界面 415
19.2.1 添加窗體 415
19.2.2 添加容器 421
19.2.3 添加構件 426
19.2.4 設定構件屬性 430
19.2.5 添加事件和回調 .431
19.3 C 語言代碼聯編 . 432
19.3.1 GtkBuilder 代碼連線基礎 433
19.3.2 GtkBuilder 代碼連線實例 . 435
19.4 小結 437
19.5 實踐與練習 437
第4 篇 項 目 實 戰
第20 章 MP3 音樂播放器 440
視頻講解:27 分鐘
20.1 GStreamer 簡介 441
20.2 界面設計 442
20.3 代碼設計 444
20.3.1 建立工程檔案 .444
20.3.2 主程式設計 .445
20.3.3 生成playbin 對象 .446
20.3.4 打開檔案 450
20.3.5 播放MP3 . 451
20.3.6 暫停播放 452
20.3.7 停止播放 452
20.3.8 界面更新 453
20.3.9 播放控制 454
20.4 小結 456

相關詞條

熱門詞條

聯絡我們