《Linux編程基礎/21世紀高等教育計算機規(guī)劃教材》是Linux編程方面的入門教材,主要針對Linux基礎讀者!禠inux編程基礎/21世紀高等教育計算機規(guī)劃教材》介紹了Linux編程方面的基礎知識,主要包括三部分:Linux基本概念及Linux基本操作;Linux編程環(huán)境;Linux編程。其中,Linux基本概念及Linux基本操作主要介紹了Linux操作系統(tǒng)基本概念和特點、Linux常用命令和VI編輯器的基本使用;Linux編程環(huán)境主要介紹了Linux的Shell編程、GCC/GDB的使用及Make工具的使用;Linux編程主要介紹了Linux文件和目錄操作、進程管理、進程問通信、信號及信號處理、多線程編程、網(wǎng)絡編程及數(shù)據(jù)庫編程等內容。最后,還提供了與Linux編程相關的實驗指導手冊!禠inux編程基礎/21世紀高等教育計算機規(guī)劃教材》通過豐富實例,詳細展示了Linux基本知識的使用方法,以幫助讀者進一步深入學習Linux技術。
《Linux編程基礎/21世紀高等教育計算機規(guī)劃教材》可作為高等學校本、?乒た祁悓I(yè)的教材,也可作為編程愛好者的入門參考書。
1.作者經驗豐富,實踐性較強。作者從事多年的Linux編程的教學,了解目前學生在學習Linux編程方面的難點。
2.理論與實際結合,應用性較強。從事過多個科研及企業(yè)項目,對如何將理論與實際相聯(lián)系有著較為深刻的認識。
3.案例與理論結合。有豐富詳細的實例介紹基本概念。
4.配有習題,便于學習。有基本的習題供學生動手實踐。
5.提供了32學時課堂的實驗指導手冊。
李養(yǎng)群,主要研究物聯(lián)網(wǎng)、嵌入式系統(tǒng)等領域。曾發(fā)表過期刊《基于BPEL4WS的新型電信業(yè)務創(chuàng)建方法》等。
第一章 Linux基礎
1.1 什么是Linux?
1.1.1 Linux操作系統(tǒng)特點
1.1.2 Linux操作系統(tǒng)組成部分
1.2 Linux版本及Fedora操作系統(tǒng)
1.2.1 Linux內核版本
1.2.2 Linux發(fā)行版
1.2.3 Fedora操作系統(tǒng)
1.2.4 Fedora發(fā)行方式
1.2.4 Fedora系統(tǒng)安裝基本要求
1.3 Fedora20的安裝
1.3.1 虛擬機下的fedora20的安裝準備
1.3.2 Fedora20安裝
1.4 Linux常用命令
1.4.1 Linux命令執(zhí)行方法
1.4.2 Linux常用各種命令
1.6 VI編輯器的使用
1.4.3 vi編輯器的使用
1.5 POSIX標準和LSB標準
第2章 Linux編程環(huán)境
2.1 gcc編譯器的使用
2.1.1 gcc編譯器簡介
2.1.2 gcc常用選項:預處理控制
2.1.3 gcc常用選項:編譯及警告信息控制選項
2.1.4 gcc常用選項:C語言標準控制選項和程序調試及優(yōu)化選項
2.1.5 gcc常用選項:搜索路徑控制和gcc鏈接選項
2.1.6 利用gcc創(chuàng)建庫文件
2.2 GDB調試器的使用
2.2.1 gdb調試器的使用
2.2.2 gdb調試器使用實例
2.3 make工具
2.3.1 第一個makefile文件
2.3.2 makefile編寫規(guī)則
2.3.3 make的基本工作原理及過程
2.3.4 makefile文件
第3章 Shell編程
3.1 Shell基礎
3.1.1 Shell交互方式
3.1.2 Shell基本功能
3.2 Bash編程
3.3 Shell中的特殊字符
3.3.1 轉義符“/”
3.3.2 單引號
3.3.3 雙引號
3.3.4 命令替換符號
3.4 Shell變量
3.4.1 Shell用戶變量定義
3.4.2 Shell環(huán)境變量
3.4.3 Shell內部變量
3.4.4 Shell參數(shù)擴展(ParameterExpansion)
3.4.5 Shell變量的算術擴展
3.4.6 條件表達式
3.4.7 Shell字符串操作
3.5 Shell控制語句
3.5.1 條件語句
3.5.2 循環(huán)語句
3.6 Shell其它命令
3.6.1 管道命令|
3.6.2 重定向命令
3.6.3 echo命令
3.6.4 shift命令
3.7 Shell函數(shù)
3.8 Shell數(shù)組
3.9 Shell中Dialog工具
3.10 Bash調試
第四章 文件I/O操作
4.1 概述
4.2 文件I/O操作
4.2.1 文件的創(chuàng)建
4.2.2 文件的打開及關閉
4.2.3 文件的讀取/寫入
4.2.4 文件的定位
4.2.5 文件刪除
4.2.6 文件描述符屬性控制fcntl
4.2.7 文件操作實例
4.3 目錄
4.3.1 目錄概述
4.3.2 Linux文件系統(tǒng)ext2基本結構
4.3.3 與目錄有關的系統(tǒng)調用
4.4 文件與目錄的屬性
4.4.1 獲得文件或目錄屬性
4.4.2 文件或目錄的模式
4.4.3 符號鏈接
4.4.4 文件屬性的更改
4.5 標準文件I/O
4.6 處理系統(tǒng)調用中的錯誤
第5章 Linux進程管理
5.1 進程基本概念
5.2 進程創(chuàng)建和命令執(zhí)行
5.3 進程退出
5.3.1 守護進程
5.3.2 僵尸進程
5.3.3 進程退出狀態(tài)
5.4 進程開發(fā)實例
第六章 信號及信號處理
6.1 信號的基本概念
6.1.1 信號的使用和產生
6.1.2 信號的狀態(tài)
6.2 信號的分類
6.2.1 可靠與不可靠信號
6.2.2 實時信號與非實時信號
6.3 信號的處理
6.3.1 signal信號處理機制
6.3.2 sigaction信號處理機制
6.4 信號發(fā)送函數(shù)
6.5 可重入函數(shù)
6.6 父子進程的信號處理
6.7 信號處理機制的應用
6.8 系統(tǒng)定時信號
6.8.1 睡眠函數(shù)
6.8.2 計時器
總結
第7章 進程間通信
7.1 進程間通信基本概念
7.1.1 進程通信的作用
7.1.2 進程通信的實現(xiàn)和方法
7.2 管道通信
7.2.1 無名管道
7.2.2 管道與重定向
7.2.3 popen的介紹
7.2.4 命名管道
7.3 SystemV信號量
7.3.1 信號量的用法
7.3.2 信號量實例
7.4 POSIX有名信號量
7.4.1 POSIX有名信號量的使用
7.4.2 有名信號量實例
7.5 共享內存
7.5.1 共享內存步驟
7.5.2 SystemV共享內存API
7.5.3 共享內存實例
7.5.4 mmap共享內存機制
7.6 消息隊列
7.6.1 消息隊列的實現(xiàn)原理
7.6.2 消息隊列系統(tǒng)調用
7.6.3 消息隊列實例
第8章 多線程編程
8.1 多線程概念
8.2 線程狀態(tài)與線程編程
8.2.1 線程的創(chuàng)建和參數(shù)傳遞
8.2.2 線程終止pthread_exit
8.2.3 線程掛起pthread_join
8.2.5 線程其它相關系統(tǒng)調用
8.3 線程的同步與互斥
8.3.1 互斥量(mutex)
8.3.2 互斥量的使用
8.3.3 信號量
8.3.4 信號量的使用方法
8.3.5 條件變量
8.3.6 條件變量的使用
第九章 Linux網(wǎng)絡編程
9.1 計算機網(wǎng)絡概述
9.1.1 計算機網(wǎng)絡的組成及特點
9.1.2 計算機網(wǎng)絡協(xié)議
9.1.3 網(wǎng)絡協(xié)議分層
9.1.4 TCP/IP協(xié)議
9.1.5 Client/Server模型
9.1.6 Linux網(wǎng)絡編程概述
9.1.7 網(wǎng)絡協(xié)議棧
9.2 Socket編程
9.2.1 什么是Socket?
9.2.2 socket編程基本系統(tǒng)調用
9.2.3 socketstream服務
9.2.4 Socket數(shù)據(jù)報服務
9.2.5 Socket原始套接字服務
9.3 Linux網(wǎng)絡編程高級I/O
9.3.1 socket阻塞/非阻塞方式
9.3.2 非阻塞socekt用法
9.3.3 socket與多路復用
9.4 Linux網(wǎng)絡并發(fā)編程
9.4.1 Linux網(wǎng)絡編程與多進程
第10章 Linux下的數(shù)據(jù)庫編程
10.1 MySQL數(shù)據(jù)庫簡介
10.1.1 Linux數(shù)據(jù)庫編程應用
10.1.2 MySQLAPI的兩種形式
10.1.3 MySQLCAPI的使用
10.2 Linux數(shù)據(jù)庫編程基本方法
10.3 MySQL數(shù)據(jù)庫數(shù)據(jù)結構及API
10.3.1 數(shù)據(jù)結構
10.3.2 MySQL操作API
10.4 MySQL數(shù)據(jù)庫編程實例
總結
習題
附錄 Linux編程基礎實驗
實驗一 Linux基本命令使用(驗證性實驗)
實驗二 Linux Shell編程(設計性實驗)
實驗三 Makefile實驗(驗證性和設計性)
實驗四 GCCGDB實驗
實驗五 LinuX文件系統(tǒng)編程
實驗六 Linux多進程與進程間通信
參考文獻