《Linux應用程序設計》按照課程教學改革的思 路進行編寫,以學生實踐為基礎,注重工程實訓,使用實訓教學的形式講解 了怎樣使用Linux系統應用編程接口進行軟件設計,從搭建Linux開發環境和 開發工具開始,通過實訓任務,完成在Linux系統上進行文件讀寫、進程與 線程控制、網絡通信、數據庫和界面設計等應用編程的任務,每個部分都由 簡單的接口示例開始,逐漸擴展到最常用的真實應用場景。本書共9章,其 中第1章和第2章兩個部分為搭建開發環境和開發工具,第3章到第7章為基本 Linux應用接口,第8章和第9章為常用Linux軟件應用。《Linux應用程序設計》既可以作為應用型本科、高職院校電子與信息 和計算機專業理論與實訓一體化教材,也可以作 為社會機構的培訓教材,以及Linux編程技術的實訓指導書。
《Linux應用程序設計》編寫的目標就是通過總結Linux應用程序設計所必需的知識,用實訓的方式讓讀者掌握Linux系統和庫函數提供的接口,能夠運用這些接口實現自己需要完成的業務功能。這其中就包含最常用的文件IO操作、多進程編程、多線程編程、進程間通信、網絡編程、數據庫編程和QT編程等內容,本教材不是要把這些方面每個編程接口都向讀者講解,而是選擇其中最常用、最能夠幫助讀者解決絕大部分問題的接口進行講解和實訓,努力做到內容循序漸進,示例和實訓清晰易懂。本書既可以作為職業院校、應用型本科電子信息專業和計算機專業理論與實訓一體化教材,也可以作為社會培訓教材,還可以作為Linux開發技術實訓指導書。
第1章 安裝和卸載Linux系統
1.1 系統概述
1.2 系統命令
1.3 系統函數
1.4 實訓任務1 安裝Vmware虛擬機
1.5 實訓任務2 安裝Linux系統
1.6 實訓任務3 安裝Vmware工具
1.7 實訓任務4 測試Linux系統可用性
1.8 實訓任務5 卸載Linux系統
第2章 搭建開發環境
2.1 代碼編輯器
2.2 GCC編譯器
2.2.1 編譯流程
2.2.2 編譯選項
2.2.3 靜態庫和動態庫
2.2.4 常見編譯錯誤
2.3 GDB調試器
2.3.1 基本介紹
2.3.2 基本命令
2.4 Make工程管理器
2.5 常用系統函數
2.5.1 內存操作函數
2.5.2 字符串操作函數
2.5.3 時間操作函數
2.6 實訓任務1 安裝和使用Source I ight
2.7 實訓任務2 安裝和使用eclipse
2.8 實訓任務3 使用VI
2.9 實訓任務4 使用gcc創建函數庫
2.1 實訓任務5 使用GDB調試程序
2.1.1 基本使用流程
2.1.2 調試錯誤程序實驗
2.11 實訓任務6 使用Make管理項目工程
2.11.1 簡單Make程序創建
2.11.2 Makefile改進
第3章 應用文件IO
3.1 Linux文件結構
3.2 文件IO基本操作
3.2.1 不帶緩存的IO操作
3.2.2 帶緩存的IO操作
3.3 文件IO高級操作
3.3.1 文件鎖
3.3.2 多路復用
3.4 實訓任務1 不帶緩存的文件內容拷貝
3.5 實訓任務2 帶緩存的文件內容拷貝
3.6 實訓任務3 字符串文件內容解析
3.7 實訓任務4 文件加鎖讀寫
3.8 實訓任務5 多路復用記錄輸入字符串
3.9 實訓任務6 文件操作綜合實驗
第4章 管理多線程
4.1 線程概述
4.2 Linux線程控制
4.2.1 線程基本操作
4.2.2 線程屬性
4.3 線程互斥鎖
4.4 實訓任務1 創建兩個新線程
4.5 實訓任務2 設置新線程屬性
4.6 實訓任務3 應用線程鎖保護全局資源
4.7 實訓任務4 多線程綜合實訓
第5章 管理多進程
5.1 進程概述
5.1.1 程序與進程
5.1.2 進程結構
5.1.3 進程屬性
5.1.4 進程管理
5.1.5 進程模式
5.2 Linux進程控制
5.2.1 fork函數
5.2.2 exec函數族
5.2.3 exit和_exit函數
5.2.4 wait和waitpid函數
5.3 守護進程
5.4 信號
5.5 實訓任務1 fork進程并查看進程PID
5.6 實訓任務2 應用exec函數族替換進程內容
5.7 實訓任務3 使用it和_exit退出進程
5.8 實訓任務4 使用waitpid等待進程退出
5.9 實訓任務5 創建守護進程
第6章 應用進程門通信
6.1 概述
6.2 管道
6.2.1 無名管道
6.2.2 有名管道
6.2 共享內存
6.2.1 共享內存概述
6.2.2 共享內存相關函數
6.3 消息隊列
6.3.1 消息隊列概述
6.3.2 消息隊列相關函數
6.4 信號量
6.4.1 信號量基本操作
6.4.2 信號量相關函數
6.5 實訓任務1 創建無名管道
6.6 實訓任務2 創建有名管道
6.7 實訓任務3 創建共享內存
6.8 實訓任務4 應用消息隊列進行間通信
6.9 實訓任務5 創建信號量保護共享資源
第7章 應用網絡通信
7.1 網絡編程基礎概念
7.1.1 TCP/IP基本概念
7.1.2 IP地址、端口與域名
7.1.3 套接字socket
7.1.4 套接字數據結構
7.1.5 網絡相關函數
7.2 網絡基礎編程
7.2.1 面向連接的套接字(TCP)
7.2.2 無連接的套接字(UDP)
7.3 網絡高級編程
7.4 多播廣播
7.5 實訓任務1 客戶端與服務器使用TCP通信
7.6 實訓任務2 服務器和客戶端使用UDP通信
7.7 實訓任務3 網絡聊天室
第8章 應用嵌入式數據庫
8.1 嵌入式數據庫概述
8.2 SQLite基本語法示
8.2.1 新建一個數據庫
8.2.2 創建表和插入值
8.2.3 在線幫助
8.2.4 查看當前數據庫下的所有表
8.2.5 退出sqlite3
8.3 SQLite編程與應用
8.3.1 如何打開關閉數據庫
8.3.2 執行SQL語句
8.4 實訓任務1 SQLite編譯與安裝
8.5 實訓任務2 應用SQLite API打開數據庫
8.6 實訓任務3 SQLite命令模式
第9章 應用Qt界面設計
9.1 Qt介紹
9.2 Qt Designer使用
9.3 Qt對話框
9.4 Qt的信號與槽
9.5 Qt的類
9.6 如何從參考文檔獲得幫助
9.7 實訓任務1 Qt的安裝
9.8 實訓任務2 使用Designer創建Hello World
9.9 實訓任務3 美化Hello World
9.1 實訓任務4 實現軟鍵盤
9.11 實訓任務5 實現QQ聊天程序綜合實驗
9.11.1 實驗目的
9.11.2 實驗環境
9.11.3 實驗內容
9.11.4 實驗步驟
9.11.5 實驗代碼
9.11.6 實驗結果
參考文獻