內容簡介
《Linux高級程序設計(第3版)》圍繞Linux操作係統“一切都是文件”的特點,講述瞭Linux操作係統下應用層“一段執行單元(進程)對係統資源(CPU資源、各類文件資源)的管理”。詳細介紹瞭Linux係統編程環境及編程工具(GCC/Makefile/GDB)、文件管理(文件屬性控製、ANSI以及POSIX標準下文件讀寫操作、終端編程)、進程管理(創建、退齣、執行、等待、屬性控製)、進程間通信(管道、消息隊列、共享內存)、進程間同步機製(信號量)、進程間異步機製(信號)、綫程管理(創建、退齣、取消等以及屬性控製)、綫程間同步(互斥鎖、讀寫鎖、條件變量)、綫程與信號以及BSD socket編程中的TCP、UDP、原始套接口、網絡服務器應用開發等內容,並對Linux係統下的音頻應用程序開發做瞭講解。
《Linux高級程序設計(第3版)》內容豐富、緊扣應用,適閤從事Linux下C應用編程的人員閱讀,也適閤從事嵌入式Linux開發的人員閱讀。
目錄
第1章 Linux下C語言開發環境
1.1 Linux操作係統簡介
1.1.1 Linux操作係統簡介
1.1.2 GNU/Linux簡介
1.1.3 相關術語介紹
1.2 Linux開發初步
1.2.1 Linux下C程序標準
1.2.2 庫函數和係統調用
1.2.3 在綫文檔介紹
1.2.4 獲取錯誤信息
1.3 部分常用工具簡介
1.3.1 tar打包器
1.3.2 Linux常用命令及工具
1.4 Linux下編碼風格
1.4.1 GNU編碼規範
1.4.2 Linux內核編碼規範
第2章 Linux下C語言開發工具
2.1 常用編輯工具
2.1.1 VIM編輯器
2.1.2 Emacs編輯器
2.1.3 Source Insight工具
2.2 GCC/GDB編譯調試工具基礎
2.2.1 GCC/G++簡單介紹
2.2.2 GDB調試工具簡介
2.2.3 使用GCC編譯C程序示例
2.2.4 使用g++編譯C++程序示例
2.2.5 GDB演示示例
第3章 Linux進程存儲管理
3.1 Linux程序存儲結構與進程結構
3.1.1 Linux可執行文件結構
3.1.2 Linux進程結構
3.1.3 C變量及函數存儲類型
3.1.4 棧和堆的區彆
3.1.5 示例:查看代碼中各數據存儲位置
3.1.6 常見內存錯誤示例分析
3.2 ANSI C動態內存管理
3.2.1 內存分配的基本方式
3.2.2 示例:為程序申請動態內存空間
3.2.3 內存數據管理函數
3.3 Valgrind及valkyrie內存管理工具
3.3.1 Valgrind介紹
3.3.2 Valgrind安裝與使用
3.3.3 valgrind圖形化工具Valkyrie
3.3.4 內存檢測示例
3.4 Linux進程環境及係統限製
3.4.1 進程與命令行選項及參數
3.4.2 進程與環境變量
3.4.3 Linux係統限製
3.4.4 Linux時間管理
第4章 ANSI C文件IO管理
4.1 文件及文件流
4.1.1 文件與流的基本概念
4.1.2 標準流及流主要功能
4.1.3 文件流指針
4.1.4 緩衝區類型
4.1.5 指定流緩衝區
4.2 ANSI C文件I/O操作
4.2.1 打開關閉文件
4.2.2 讀/寫文件流
4.2.3 文件流定位
4.2.4 實現文件復製操作示例
4.3 流的格式化輸入/輸齣操作
4.3.1 printf/scanf函數分析
4.3.2 fprintf/fscanf函數分析
4.3.3 sprintf函數分析
4.3.4 sscanf函數分析
第5章 POSIX文件及目錄管理
5.1 文件描述符與內核文件錶項
5.1.1 文件流與文件描述符的區彆
5.1.2 文件錶結構圖
5.1.3 文件描述符與文件流的轉換操作
5.2 POSIX標準下文件IO管理
5.2.1 創建/打開/關閉文件
5.2.2 文件控製fcntl
5.2.3 讀/寫文件內容
5.2.4 使用POSIX IO實現大於2G文件復製
5.2.5 文件定位
5.2.6 同步內核緩衝區
5.2.7 映射文件到內存
5.2.8 鎖定/解鎖文件
5.3 目錄流基本操作
5.3.1 打開/關閉目錄文件
5.3.2 讀/寫目錄內容
5.3.3 定位目錄位置
5.3.4 添加和刪除目錄
5.3.5 當前工作路徑操作
5.3.6 文件流、目錄流、文件描述符總結
5.4 應用案例:遞歸文件目錄復製操作
5.4.1 應用需求及流程圖
5.4.2 示例代碼
第6章 普通文件、連接文件及目錄文件屬性管理
6.1 Linux文件係統管理
6.1.1 Linux下VFS虛擬文件係統
6.1.2 ext2文件係統結構
6.1.3 目錄文件及常規文件存儲方法
6.2 Linux係統下文件類型及屬性
6.2.1 Linux文件類型及權限
6.2.2 Linux文件類型
6.2.3 文件權限修飾位
6.2.4 文件訪問權限位
6.3 Linux文件屬性管理
6.3.1 讀取文件屬性
6.3.2 修改文件權限操作
6.3.3 修改係統umask值
6.3.4 修改文件的擁有者及組
6.3.5 用戶名/組名與UID/GID的轉換
6.3.6 創建/刪除硬連接
6.3.7 符號連接文件特殊操作
6.3.8 文件時間屬性修改與時間處理
6.4 示例:ls ?l以排序方式列齣目錄信息
6.4.1 需求及知識點涵蓋
6.4.2 流程及源代碼實現
6.5 示例:實現tree係統命令
第7章 終端及串口編程
7.1 終端設備類型
7.1.1 實際的物理串口
7.1.2 控製颱終端
7.1.3 虛擬終端
7.1.4 當前終端
7.2 終端屬性控製
7.2.1 讀取/設置終端屬性信息
7.2.2 c_cflag終端控製選項
7.2.3 c_lflag終端本地選項
7.2.4 c_iflag終端輸入選項
7.2.5 c_oflag終端輸齣選項
7.2.6 c_cc[NCCS]終端控製字符
7.2.7 IOCTLs控製終端
7.2.8 進程與終端
7.3 串口編程
7.3.1 串口物理設備
7.3.2 串口終端基本操作
7.3.3 串口編程示例
7.4 控製颱終端應用基礎
7.4.1 終端屬性設置
7.4.2 控製命令基本格式
7.4.3 從控製颱終端獲取信息不迴顯
第8章 Linux進程管理與程序開發
8.1 進程環境及進程屬性
8.1.1 程序、進程與進程資源
8.1.2 進程狀態
8.1.3 進程基本屬性
8.1.4 進程用戶屬性
8.2 進程管理及控製
8.2.1 創建進程
8.2.2 在進程中運行新代碼
8.2.3 迴收進程用戶空間資源
8.2.4 迴收內核空間資源
8.2.5 孤兒進程與僵死進程
8.2.6 修改進程用戶相關信息
8.3 Linux特殊進程
8.3.1 守候進程及其創建過程
8.3.2 日誌信息及其管理
8.3.3 守候進程應用示例
第9章 進程間通信--管道
9.1 進程間通信--PIPE
9.1.1 無名管道概念
9.1.2 無名管道文件操作的特殊性
9.1.3 文件描述符重定嚮
9.1.4 實現who|sort
9.1.5 流重定嚮
9.2 進程間通信--FIFO
9.2.1 有名管道概念
9.2.2 有名管道管理及其特殊性
9.2.3 管道基本特點總結
第10章 Linux異步信號處理機製
10.1 Linux常見信號與處理
10.1.1 信號與中斷
10.1.2 信號基本概念
10.1.3 信號的生命周期
10.1.4 發送信號
10.2 安裝信號與捕獲信號
10.2.1 信號處理辦法
10.2.2 signal安裝信號
10.2.3 sigaction安裝信號
10.2.4 signal的係統漏洞
10.3 安裝信號與捕獲信號
10.3.1 設置進程屏蔽信號集
10.3.2 獲取當前未決的信號
10.3.3 信號集閤操作
10.3.4 信號集閤操作應用示例
10.4 等待信號
10.4.1 pause函數
10.4.2 sigsuspend函數
10.5 信號應用實例
第11章 System V進程間通信
11.1 System V IPC基礎
11.1.1 key值和ID值
11.1.2 擁有者及權限
11.2 消息隊列
11.2.1 消息隊列IPC原理
11.2.2 Linux消息隊列管理
11.2.3 消息隊列應用實例
11.3 信號量通信機製
11.3.1 信號量IPC原理
11.3.2 Linux信號量管理操作
11.3.3 SEM_UNDO參數的應用
11.3.4 使用信號量實現生産消費問題
11.4 共享內存
11.4.1 共享內存IPC原理
11.4.2 Linux共享內存管理
11.4.3 共享內存的權限管理示例
11.4.4 共享內存處理應用示例
第12章 Linux多綫程編程
12.1 綫程基本概念與綫程操作
12.1.1 綫程與進程的對比
12.1.2 創建綫程
12.1.3 綫程退齣與等待
12.1.4 取消綫程
12.1.5 綫程與私有數據
12.2 綫程同步機製
12.2.1 互斥鎖通信機製
12.2.2 條件變量通信機製
12.2.3 讀寫鎖通信機製
12.3 多綫程異步管理--信號
12.3.1 綫程信號管理
12.3.2 綫程信號應用實例
12.4 綫程屬性控製
12.4.1 獲取綫程ID
12.4.2 初始化綫程屬性對象
12.4.3 獲取/設置綫程detachstate屬性
12.4.4 獲取/設置綫程棧相關屬性
第13章 Linux Socket網絡編程基礎
13.1 網絡通信基礎
13.1.1 TCP/IP協議簇基礎
13.1.2 IPv4協議基礎
13.1.3 點分十進製IP地址與二進製IP地址轉換
13.1.4 網絡數據包封包與拆包過程
13.1.5 字節順序與大小端問題
13.2 BSD Socket網絡通信編程
13.2.1 BSD TCP通信編程流程
13.2.2 BSD Socket網絡編程API
13.3 使用TCP實現簡單聊天程序
13.3.1 服務器端代碼分析
13.3.2 客戶器端代碼分析
13.4 網絡調試工具
13.4.1 tcpdump的使用
13.4.2 netstat工具使用
13.4.3 lsof工具使用
第14章 TCP高級應用
14.1 文件I/O方式比較
14.2 I/O阻塞與非阻塞操作
14.2.1 阻塞與非阻塞基本概念
14.2.2 非阻塞應用示例
14.3 socket多路復用應用
14.3.1 select()與pselect函數介紹
14.3.2 poll與ppoll函數
14.3.3 多路復用應用示例
14.4 控製socket文件描述符屬性
14.4.1 set/getsockopt()修改socket屬性
14.4.2 fcntl控製socket
14.4.3 ioctl控製文件描述符
第15章 UDP網絡編程應用
15.1 UDP網絡編程基礎
15.1.1 UDP網絡通信流程
15.1.2 使用AF_INET實現UDP點對點通信示例
15.2 UDP廣播通信
15.2.1 廣播地址與廣播通信
15.2.2 UDP廣播通信示例
15.3 UDP組播通信
15.3.1 組播地址與組播通信
15.3.2 UDP組播應用示例
15.4 socket信號驅動
15.4.1 異步信號處理機製流程
15.4.2 信號驅動方式處理UDP數據
15.5 域名與IP信息解析
15.5.1 Linux下域名解析過程
15.5.2 通過域名返迴主機信息
15.5.3 通過域名和IP返迴主機信息
15.5.4 getaddrinfo獲取主機信息
第16章 網絡服務器應用設計
16.1 迭代服務器設計
16.1.1 xinetd服務介紹
16.1.2 時間服務器應用
16.2 多進程/多綫程並發服務器設計
16.2.1 多進程實現多客戶端
16.2.2 多綫程實現多客戶端
16.2.3 基於HTTP的多進程並發文件服務器
16.3 進程池/綫程池服務器設計
16.3.1 進程池/綫程池服務器模型
16.3.2 綫程池文件服務器示例
第17章 本地通信與原始套接口
17.1 sock實現本地進程間通信
17.1.1 使用socket實現本地進程通信
17.1.2 使用AF_UNIX實現本機數據流
17.2 本地socket傳遞文件描述符
17.2.1 sendmsg/recvmsg函數
17.2.2 傳遞文件描述符示例
17.3 原始套應用程序開發
17.3.1 原始套接口基本原理
17.3.2 原始套接口實現ping應用程序
17.3.3 原始套實現DOS攻擊
第18章 音頻應用程序開發基礎
18.1 WAV音頻文件格式分析
18.1.1 數字音頻基本參數
18.1.2 WAV音頻文件結構
18.1.3 讀齣WAV格式文件頭信息
18.4.4 MP3文件格式
18.2 OSS音頻設備編程
18.2.1 OSS音頻設備基本架構
18.2.2 OSS音頻編程應用示例
18.3 ALSA音頻設備編程
18.3.1 ALSA基本架構
18.3.2 alsa-libs基本應用
18.3.3 ALSA音頻編程示例
前言/序言
Linux高級程序設計(第3版) 下載 mobi epub pdf txt 電子書 格式
評分
☆☆☆☆☆
不錯,是正品,很好用,京東值得信賴
評分
☆☆☆☆☆
包裝有塑料膜,運輸無損傷,正品。
評分
☆☆☆☆☆
是正版,京東速度就是快
評分
☆☆☆☆☆
就是裏麵的筆誤比較多……嗯,我是渣渣,但主語前後不對總也看齣來吧……快看完瞭,看的比較痛苦……
評分
☆☆☆☆☆
很詳細的一本書,適閤學習
評分
☆☆☆☆☆
包裝簡陋,送來時有破損,不想麻煩。書的內容還沒有認真看,大緻瀏覽瞭一下,正如有些網友說的那樣,本書沒有理論講解,像是一本使用手冊,不適閤初學者。
評分
☆☆☆☆☆
不錯
評分
☆☆☆☆☆
好好學習,天天嚮上,惡補中,書很不錯。
評分
☆☆☆☆☆
收到書很滿意,物流很快,書是正版