內容簡介
《Linux C從入門到精通》從初學者的角度剃主訂只出發,通過通俗易懂的語言,豐富多彩的實例,詳細介紹了在Linux系統下使用C語言進行應用程式開發應該掌握的各方面技術。全書共分20章,包括Linux系統概述、C語言基礎、記憶體管理、基本編輯器VIM和Emacs、GCC編譯器、GDB調主嚷束試工具、進程控制、進程間通信、檔案操作、檔案的輸入/輸出操作、信號及信號處理、網路編程、make編譯基礎、Linux系統下的C語言與資料庫、集成開發環境、界面開發基灶說頸礎、界面布局、界面構件開發、Glade設計程式界面、MP3音樂播放器。所有知識都結合具體實例進行介紹,涉及的程式代碼給出了詳細的注釋,可以使讀者輕鬆領會Linux系統下的C語言應用程式開發的精髓,快速提高開發技能。另外,本書除了紙質內容嘗洪永之外,配書光碟中還給出了海量開發資源庫,主要內容如下:
◆語音視頻講解:總時長14小時,共83段
◆實例姜乎符估資源庫 881個經典範例
◆模組資源庫:15個常用模組
◆項目案例資源庫:15個實用項目
◆測試題庫系統:371道能力測試題目
◆面試資源庫:616道企業面試真題?
◆PPT電子教案
本書適合作為軟體開發入門者的自學用書,也適合作為高等院校相關專業的教學參考書,也可供開發人員查閱、參考。
圖書目錄
第1篇 基礎知識
第1章 Linux系統概述
視頻講解:12分鐘
1.1 Linux的起源與發展
1.1.1 GNU項目的前前後後
1.1.2 Linux的誕生
1.1.3 Linux的現狀
1.2 Linux的核心與版本
1.2.1 Linux核心的介紹
1.2.2 Linux對硬體平台的支持
1.2.3 常見Linux的發行版本
1.3 Linux系統的安裝
1.3.1 Linux系統安裝的硬體要求
1.3.2 圖形化安裝Linux
1.3.3 第一次啟動Linux系統
1.4 小結
第2章 C語言基礎
視頻講解:34分鐘
2.1 C語言概述
2.2 數據類型
2.2.1 基本類型
2.2.2 構造類型
2.2.3 指針類型
2.2.4 空類型
2.3 運算符和表達式
2.3.1 運算符
2.3.2 表達式
2.4 函式
2.5 程式語句
2.5.1 控制語句
2.5.2 函式調用語句
2.5.3 表達式語句
2.5.4 空語句
2.5.5 複合語句
2.6 預處理命令
2.6.1 宏定義
2.6.2 檔案包含
2.7 小結
2.8 實踐與練習
第3章 記憶體管理
視頻講解:9分鐘
3.1 記憶體分類
3.1.1 動態記憶體
3.1.2 靜態記憶體
3.1.3 動態記憶體與靜態記憶體的區別
3.2 記憶體管理的基本操作
3.2.1 分配記憶體
3.2.2 釋放記憶體
3.3 鍊表
3.4 小結
3.5 實踐與練習
第4章 基本編輯器VIM和Emacs
視頻講解:12分鐘
4.1 初識VIM
4.1.1 VIM的進入與退出
4.1.2 VIM基本模式
4.2 VIM的基本操作
4.2.1 VIM的命令行模式操作
4.2.2 VIM的編輯模式操作
4.2.3 VIM的底行模式操作
4.3 初識Emacs
4.4 Emacs的基本操作
4.4.1 啟動Emacs
4.4.2 基本操作
4.5 小結
第5章 GCC編譯器
視頻講解:26分鐘
5.1 初識GCC編譯器
5.1.1 第一次編譯
5.1.2 GCC選項概述
5.1.3 警告
5.1.4 GCC調試
5.1.5 代碼最佳化
5.2 GCC編譯的基本流程
5.2.1 C預處理
5.2.2 編譯
5.2.3 彙編
5.2.4 連結
5.3 其他編譯工具簡介
5.3.1 C++編譯器G++
5.3.2 EGCS
5.3.3 F2C和P2C
5.4 小結
第6章 GDB調試工具
視頻講解:40分鐘
6.1 初識GDB調試器
6.1.1 GDB調試器概述
6.1.2 用遙套GDB調試簡單程式
6.2 GDB調試器的基本功能與常用命令
6.2.1 啟動調試程式功能及其命令
6.2.2 使用斷點功能促兆辣及其命令
6.2.3 檢查數據的功能及其命令
6.2.4 使用觀察視窗功能及其命令
6.2.5 檢查棧信息功能及其命令
6.2.6 檢查原始碼功能及其命令
6.2.7 改變程式的運行功能及其命令
6.3 多執行緒程式調試
6.4 Linux平台上的其他調試工具
6.5 小結
第2篇 核 心 技 術
第7章 進程控制
視頻講解:57分鐘
7.1 進程概述
7.1.1 進程的定義
7.1.2 進程的相關信息
7.2 進程的基本操作
7.2.1 進程創建
7.2.2 進程等待
7.2.3 進程結束
7.3 多個進程間的關係
7.3.1 進程組
7.3.2 時間片的分配
7.4 執行緒
7.4.1 執行緒概述
7.4.2 執行緒的屬性
7.5 進程的特殊操作
7.5.1 獲取進程標識
7.5.2 設定進程標識
7.6 小結
7.7 實踐與練習
第8章 進程間通信
視頻講解:41分鐘
8.1 進程間通信概述
8.1.1 進程間通信的工作原理
8.1.2 進程間通信的主要分類
8.2 管道與命名管道
8.2.1 管道基本定義
8.2.2 管道創建和管道關閉
8.2.3 pipe()函式實現管道通信
8.2.4 命名管道基本定義
8.2.5 在Shell中創建命名管道
8.2.6 mkfifo()函式創建命名管道
8.3 共享記憶體
8.3.1 SYSV子系統的基本知識
8.3.2 共享記憶體相關操作
8.3.3 共享記憶體實現進程間通信
8.4 信號量
8.4.1 信號量的工作原理
8.4.2 信號量的相關操作
8.4.3 信號量實現進程間通信
8.5 訊息佇列
8.5.1 訊息佇列的相關操作
8.5.2 訊息佇列實現進程間通信
8.6 小結
8.7 實踐與練習
第9章 檔案操作
視頻講解:37分鐘
9.1 檔案初探
9.1.1 檔案與檔案系統的概念
9.1.2 檔案的屬性
9.1.3 檔案的相關信息
9.2 檔案的相關操作
9.2.1 修改檔案屬性
9.2.2 複製檔案描述符
9.2.3 獲取檔案信息
9.2.4 檔案的其他操作
9.3 特殊檔案的操作
9.3.1 目錄檔案的操作
9.3.2 連結檔案的操作
9.3.3 設備檔案
9.4 小結
9.5 實踐與練習
第10章 檔案的輸入/輸出操作
視頻講解:30分鐘
10.1 檔案I/O操作概述
10.1.1 檔案描述符簡介
10.1.2 數據流概述
10.2 基於檔案描述符的I/O操作
10.2.1 檔案的打開與關閉
10.2.2 檔案的讀寫操作
10.2.3 檔案的定位
10.3 基於數據流的I/O操作
10.3.1 檔案的打開與關閉
10.3.2 字元輸入/輸出
10.3.3 字元串輸入/輸出
10.3.4 數據塊輸入/輸出
10.3.5 格式化輸入/輸出
10.3.6 操作讀寫位置的函式
10.3.7 C標準庫的I/O緩衝區
10.4 小結
10.5 實踐與練習
第11章 信號及信號處理
視頻講解:23分鐘
11.1 信號概述
11.1.1 在終端中查看常見的信號
11.1.2 信號處理
11.2 產生信號
11.2.1 kill()函式
11.2.2 raise()函式
11.2.3 alarm()函式
11.3 捕捉信號
11.3.1 signal()函式
11.3.2 sigaction()函式
11.4 信號的阻塞
11.4.1 sigprocmask()函式
11.4.2 sigsuspend()函式
11.4.3 sigpending()函式
11.5 信號處理的安全問題
11.6 小結
11.7 實踐與練習
第12章 網路編程
視頻講解:30分鐘
12.1 網路編程的基本原理
12.1.1 計算機網路
12.1.2 TCP/IP協定
12.1.3 IP位址簡介
12.1.4 套接字編程原理
12.2 TCP套接字編程
12.3 UDP套接字編程
12.3.1 數據傳輸系統調用
12.3.2 基於UDP協定的C/S機制的網路通信的工作原理
12.3.3 基於UDP的簡單網路通信實例
12.4 原始套接字編程
12.4.1 原始套接字定義
12.4.2 原始套接字系統調用
12.4.3 原始套接字的傳送與接收
12.4.4 報文處理
12.5 小結
12.6 實踐與練習
第13章 make編譯基礎
視頻講解:1小時54分鐘
13.1 通過實例認識make
13.1.1 Makefile的導入
13.1.2 make是如何工作的
13.1.3 Makefile中使用變數
13.1.4 讓make自動推導
13.1.5 清空目標檔案的規則
13.2 make概述
13.2.1 Makefile中有什麼
13.2.2 Makefile的檔案名稱
13.2.3 包含其他Makefile檔案
13.2.4 變數MAKEFILES
13.2.5 變數MAKEFILE_LIST
13.2.6 其他特殊變數
13.2.7 Makefile檔案的重建
13.2.8 重載另外一個Makefile
13.2.9 make如何解析Makefile檔案
13.2.10 總結
13.3 Makefile基本規則
13.3.1 規則舉例
13.3.2 規則語法
13.3.3 依賴的類型
13.3.4 檔案名稱使用通配符
13.3.5 目錄搜尋
13.3.6 Makefile偽目標
13.3.7 強制目標(沒有命令或依賴的規則)
13.3.8 空目標檔案
13.3.9 Makefile的特殊目標
13.3.10 多目標
13.3.11 多規則目標
13.3.12 靜態模式
13.3.13 雙冒號規則
13.3.14 自動產生依賴
13.3.15 書寫命令
13.4 變數的基本操作
13.4.1 變數的基礎
13.4.2 變數中的變數
13.4.3 變數高級用法
13.4.4 追加變數值
13.4.5 override指示符
13.4.6 多行變數
13.4.7 環境變數
13.4.8 目標變數
13.4.9 模式變數
13.5 條件判斷
13.5.1 示例
13.5.2 語法
13.6 基本函式的使用
13.6.1 函式的調用語法
13.6.2 字元串處理函式
13.6.3 檔案名稱操作函式
13.6.4 foreach()函式
13.6.5 if()函式
13.6.6 call()函式
13.6.7 origin()函式
13.6.8 shell()函式
13.6.9 控制make的函式
13.7 make的運行
13.7.1 make的退出碼
13.7.2 指定Makefile
13.7.3 指定目標
13.7.4 檢查規則
13.7.5 make的參數
13.8 隱含規則
13.8.1 使用隱含規則
13.8.2 隱含規則一覽
13.8.3 隱含規則使用的變數
13.8.4 隱含規則鏈
13.8.5 模式規則
13.8.6 後綴規則
13.8.7 隱含規則搜尋算法
13.9 make工具與函式館
13.9.1 函式館檔案的成員
13.9.2 函式館成員的隱含規則
13.9.3 函式館檔案的後綴規則
13.9.4 注意事項
13.1 小結
13.11 實踐與練習
第14章 Linux系統下的C語言與資料庫
視頻講解:12分鐘
14.1 MySQL資料庫簡介
14.2 安裝和連線MySQL資料庫
14.2.1 安裝MySQL資料庫
14.2.2 啟動和關閉MySQL
14.3 連線操作MySQL
14.3.1 MySQL常用資料庫操作函式
14.3.2 連線MySQL數據
14.3.3 查詢表記錄
14.3.4 插入表記錄
14.3.5 修改表記錄
14.3.6 刪除表記錄
14.4 Oracle資料庫簡介
14.5 Oracle資料庫的安裝
14.5.1 軟硬體要求
14.5.2 安裝Oracle 11g資料庫
14.5.3 創建監聽和資料庫
14.6 連線Oracle資料庫
14.7 小結
14.8 實踐與練習
第15章 集成開發環境
視頻講解:13分鐘
15.1 Eclipse與CDT簡介
15.2 安裝和配置Eclipse
15.2.1 安裝Eclipse
15.2.2 配置Eclipse的CDT
15.3 使用Eclipse開發C代碼
15.3.1 編寫運行Hello World
15.3.2 CDT的相關功能
15.3.3 調試C/C++的項目
15.4 小結
第3篇 高 級 應 用
第16章 界面開發基礎
視頻講解:23分鐘
16.1 Linux常用桌面環境
16.1.1 面板介紹
16.1.2 桌面圖示介紹
16.1.3 桌面背景
16.2 glib庫介紹
16.2.1 類型定義
16.2.2 glib的宏
16.2.3 記憶體管理
16.2.4 字元串處理
16.2.5 數據結構
16.3 GObject對象介紹
16.4 圖形引擎Cairo介紹
16.5 多媒體庫介紹
16.5.1 元件和外掛程式
16.5.2 襯墊
16.5.3 數據、緩衝區和事件
16.5.4 緩衝區的分配
16.5.5 MIME類型和屬性
16.6 小結
16.7 實踐與練習
第17章 界面布局
視頻講解:34分鐘
17.1 窗體
17.1.1 初始化
17.1.2 建立視窗
17.1.3 結束應用程式
17.1.4 回調函式
17.1.5 其他窗體函式
17.2 組裝盒構件
17.2.1 組裝盒的原理
17.2.2 盒的細節
17.2.3 組裝盒程式
17.2.4 用表組裝
17.2.5 表組裝程式
17.3 容器
17.3.1 事件盒
17.3.2 對齊構件
17.3.3 固定容器
17.3.4 布局容器
17.3.5 框架
17.3.6 分欄視窗構件
17.3.7 視角
17.3.8 滾動視窗
17.3.9 按鈕盒
17.3.10 工具列
17.3.11 筆記本
17.4 小結
17.5 實踐與練習
第18章 界面構件開發
視頻講解:1小時4分鐘
18.1 基本界面構件
18.1.1 按鈕構件
18.1.2 調整對象
18.1.3 範圍構件
18.1.4 標籤
18.1.5 箭頭
18.1.6 工具提示對象
18.1.7 進度條
18.1.8 對話框
18.1.9 標尺
18.2 雜項構件
18.2.1 狀態欄
18.2.2 文本輸入構件
18.2.3 微調按鈕
18.2.4 組合框
18.2.5 日曆
18.2.6 顏色選擇
18.2.7 檔案選擇
18.3 RC檔案
18.4 小結
18.5 實踐與練習
第19章 Glade設計程式界面
視頻講解:23分鐘
19.1 Glade簡介
19.2 構造圖形界面
19.2.1 添加窗體
19.2.2 添加容器
19.2.3 添加構件
19.2.4 設定構件屬性
19.2.5 添加事件和回調
19.3 C語言代碼聯編
19.3.1 GtkBuilder代碼連線基礎
19.3.2 GtkBuilder代碼連線實例
19.4 小結
19.5 實踐與練習
第4篇 項 目 實 戰
第20章 MP3音樂播放器
視頻講解:13分鐘
20.1 GStreamer簡介
20.2 界面設計
20.3 代碼設計
20.3.1 建立工程檔案
20.3.2 主程式設計
20.3.3 生成playbin對象
20.3.4 打開檔案
20.3.5 播放MP3
20.3.6 暫停播放
20.3.7 停止播放
20.3.8 界面更新
20.3.9 播放控制
20.4 小結
11.3.2 sigaction()函式
11.4 信號的阻塞
11.4.1 sigprocmask()函式
11.4.2 sigsuspend()函式
11.4.3 sigpending()函式
11.5 信號處理的安全問題
11.6 小結
11.7 實踐與練習
第12章 網路編程
視頻講解:30分鐘
12.1 網路編程的基本原理
12.1.1 計算機網路
12.1.2 TCP/IP協定
12.1.3 IP位址簡介
12.1.4 套接字編程原理
12.2 TCP套接字編程
12.3 UDP套接字編程
12.3.1 數據傳輸系統調用
12.3.2 基於UDP協定的C/S機制的網路通信的工作原理
12.3.3 基於UDP的簡單網路通信實例
12.4 原始套接字編程
12.4.1 原始套接字定義
12.4.2 原始套接字系統調用
12.4.3 原始套接字的傳送與接收
12.4.4 報文處理
12.5 小結
12.6 實踐與練習
第13章 make編譯基礎
視頻講解:1小時54分鐘
13.1 通過實例認識make
13.1.1 Makefile的導入
13.1.2 make是如何工作的
13.1.3 Makefile中使用變數
13.1.4 讓make自動推導
13.1.5 清空目標檔案的規則
13.2 make概述
13.2.1 Makefile中有什麼
13.2.2 Makefile的檔案名稱
13.2.3 包含其他Makefile檔案
13.2.4 變數MAKEFILES
13.2.5 變數MAKEFILE_LIST
13.2.6 其他特殊變數
13.2.7 Makefile檔案的重建
13.2.8 重載另外一個Makefile
13.2.9 make如何解析Makefile檔案
13.2.10 總結
13.3 Makefile基本規則
13.3.1 規則舉例
13.3.2 規則語法
13.3.3 依賴的類型
13.3.4 檔案名稱使用通配符
13.3.5 目錄搜尋
13.3.6 Makefile偽目標
13.3.7 強制目標(沒有命令或依賴的規則)
13.3.8 空目標檔案
13.3.9 Makefile的特殊目標
13.3.10 多目標
13.3.11 多規則目標
13.3.12 靜態模式
13.3.13 雙冒號規則
13.3.14 自動產生依賴
13.3.15 書寫命令
13.4 變數的基本操作
13.4.1 變數的基礎