出版社:人民郵電 ISBN:9787115292902 商品編碼:1028214877 開本:16 出版時間:2012-11-01 代碼:59 作者:楊宗德,呂光宏,劉雍
" 基本信息- 商品名稱: 程序設計(第3版)
- 作者:楊宗德//呂光宏//劉雍
- 代碼:59
- 出版社:人民郵電
- 書號:9787115292902
其他參考信息- 出版時間:2012-11-01
- 印刷時間:2012-11-01
- 版次:3
- 印次:1
- 開本:16開
- 包裝:平裝
- 頁數:486
- 字數:953千字
內容提要 《 程序設計(第3版)》編著者楊宗德、呂光宏、劉雍。 《 程序設計(第3版)》圍繞Linux操作繫統“一切都是文件”的特點,講述了Linux操作繫統下應用層“一段(進程)對繫統資源(CPU資源、各類文件資源)的管理”。詳細介紹了Linux繫 程環境及編程工具(GCC/Makefile/GDB)、文件管理(文件屬性控制、ANSI以及POSIX標準下文件讀寫操作、終端編程)、進程管理(創建、退出、執行、等待、屬性控制)、進程間通信(管道、消息隊列、共享內存)、進程間同步機制(信號量)、進程間異步機制(信號)、線程管理(創建、退出、取消等以及屬性控制)、線程間同步(互斥鎖、讀寫鎖、條件變量)、線程與信號以及BSD socket編程中的TCP、UDP、原始套接口、網絡服務器應用開發等內容,並對Linux繫統下的音頻應用程序開發做了講解。 《Linux 程序設計(第3版)》內容豐富、緊扣應用,適合從事Linux下C應用編程的人員閱讀,也適合從事嵌入式Linux開發的人員閱讀。 目錄第1章Linux下C語言開發環境 1.1Linux操作繫統簡介 1.1.1Linux操作繫統簡介 1.1.2GNU/Linux簡介 1.1.3相關術語介紹 1.2Linux開發初步 1.2.1Linux下C程序標準 1.2.2庫函數和繫統調用 1.2.3在線文檔介紹 1.2.4獲取錯誤信息 1.3部分常用工具簡介 1.3.1tar打包器 1.3.2Linux常用命令及工具 1.4Linux下編碼風格 1.4.1GNU編碼規範 1.4.2Linux內核編碼規範
第2章Linux下C語言開發工具 2.1常用編輯工具 2.1.1VIM編輯器 2.1.2Emacs編輯器 2.1.3Source Insight工具 2.2GCC/GDB編譯調試工具基礎 2.2.1GCC/G++簡單介紹 2.2.2GDB調試工具簡介 2.2.3使用GCC編譯C程序示例 2.2.4使用g++編譯C++程序示例 2.2.5GDB演示示例
第3章Linu 程存儲管理 3.1Linux程序存儲結構與進程結構 3.1.1Linux可執行文件結構 3.1.2Linu 程結構 3.1.3C變量及函數存儲類型 3.1.4棧和堆的區別 3.1.5示例:查看代碼中各數據存儲位置 3.1.6常見內存錯誤示例分析 3.2ANSI C動態內存管理 3.2.1內存分配的基本方式 3.2.2示例:為程序申請動態內存空間 3.2.3內存數據管理函數 3.3Valgrind及valkyrie內存管理工具 3.3.1Valgrind介紹 3.3.2 Valgrind安裝與使用 3.3.3valgrind圖形化工具Valkyrie 3.3.4內存檢測示例 3.4Linu 程環境及繫統限制 3.4.1進程與命令行選項及參數 3.4.2進程與環境變量 3.4.3Linux繫統限制 3.4.4Linux時間管理
第4章ANSI C文件IO管理 4.1文件及文件流 4.1.1文件與流的基本概念 4.1.2標準流及流主要功能 4.1.3文件流指針 4.1.4緩衝區類型 4.1.5 流緩衝區 4.2ANSI C文件I/O操作 4.2.1打開關閉文件 4.2.2讀/寫文件流 4.2.3文件流定位 4.2.4實現文件復制操作示例 4.3流的格式化輸入/輸出操作 4.3.1printf/scanf函數分析 4.3.2fprintf/fscanf函數分析 4.3.3sprintf函數分析 4.3.4sscanf函數分析
第5章POSIX文件及目錄管理 5.1文件描述符與內核文件表項 5.1.1文件流與文件描述符的區別 5.1.2文件表結構圖 5.1.3文件描述符與文件流的轉換操作 5.2POSIX標準下文件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.1Linux文件繫統管理 6.1.1Linux下VFS虛擬文件繫統 6.1.2ext2文件繫統結構 6.1.3目錄文件及常規文件存儲方法 6.2Linux繫統下文件類型及屬性 6.2.1Linux文件類型及權限 6.2.2Linux文件類型 6.2.3文件權限修飾位 6.2.4文件訪問權限位 6.3Linux文件屬性管理 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.2c_cflag終端控制選項 7.2.3c_lflag終端本地選項 7.2.4c_iflag終端輸入選項 7.2.5c_oflag終端輸出選項 7.2.6c_cc[NCCS]終端控制字符 7.2.7IOCTLs控制終端 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章Linu 程管理與程序開發 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.3Linux特殊進程 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管道基本特點總結
0章Linux異步信號處理機制 10.1Linux常見信號與處理 10.1.1信號與中斷 10.1.2信號基本概念 10.1.3信號的生命周期 10.1.4發送信號 10.2安裝信號與捕獲信號 10.2.1信號處理辦法 10.2.2signal安裝信號 10.2.3sigaction安裝信號 10.2.4signal的繫統漏洞 10.3安裝信號與捕獲信號 10.3.1設置進程屏蔽信號集 10.3.2獲取當前未決的信號 10.3.3信號集合操作 10.3.4信號集合操作應用示例 10.4等待信號 10.4.1pause函數 10.4.2sigsuspend函數 10.5信號應用實例
1章System V進程間通信 11.1System V IPC基礎 11.1.1key值和ID值 11.1.2擁有者及權限 11.2消息隊列 11.2.1消息隊列IPC原理 11.2.2Linux消息隊列管理 11.2.3消息隊列應用實例 11.3信號量通信機制 11.3.1信號量IPC原理 11.3.2Linux信號量管理操作 11.3.3SEM_UNDO參數的應用 11.3.4使用信號量實現生產消費問題 11.4共享內存 11.4.1共享內存IPC原理 11.4.2Linux共享內存管理 11.4.3共享內存的權限管理示例 11.4.4共享內存處理應用示例
2章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獲取/設置線程棧相關屬性
3章Linux Socket網絡編程基礎 13.1網絡通信基礎 13.1.1TCP/IP協議簇基礎 13.1.2IPv4協議基礎 13.1.3點分十進制IP地址與二進制IP地址轉換 13.1.4網絡數據包封包與拆包過程 13.1.5字節順序與大小端問題 13.2BSD Socket網絡通信編程 13.2.1BSD TCP通信編程流程 13.2.2BSD Socket網絡編程API 13.3使用TCP實現簡單聊天程序 13.3.1服務器端代碼分析 13.3.2客戶器端代碼分析 13.4網絡調試工具 13.4.1tcpdump的使用 13.4.2netstat工具使用 13.4.3lsof工具使用
4章TCP 應用 14.1文件I/O方式比較 14.2I/O阻塞與非阻塞操作 14.2.1阻塞與非阻塞基本概念 14.2.2非阻塞應用示例 14.3socket多路復用應用 14.3.1select()與pselect函數介紹 14.3.2poll與ppoll函數 14.3.3多路復用應用示例 14.4控制socket文件描述符屬性 14.4.1set/getsockopt()修改socket屬性 14.4.2fcntl控制socket 14.4.3ioctl控制文件描述符
5章UDP網絡編程應用 15.1UDP網絡編程基礎 15.1.1UDP網絡通信流程 15.1.2使用AF_INET實現UDP點對點通信示例 15.2UDP廣播通信 15.2.1廣播地址與廣播通信 15.2.2UDP廣播通信示例 15.3UDP組播通信 15.3.1組播地址與組播通信 15.3.2UDP組播應用示例 15.4socket信號驅動 15.4.1異步信號處理機制流程 15.4.2信號驅動方式處理UDP數據 15.5域名與IP信息解析 15.5.1Linux下域名解析過程 15.5.2通過域名返回主機信息 15.5.3通過域名和IP返回主機信息 15.5.4getaddrinfo獲取主機信息
6章網絡服務器應用設計 16.1迭代服務器設計 16.1.1xinetd服務介紹 16.1.2時間服務器應用 16.2多進程/多線程並發服務器設計 16.2.1多進程實現多客戶端 16.2.2多線程實現多客戶端 16.2.3基於HTTP的多進程並發文件服務器 16.3進程池/線程池服務器設計 16.3.1進程池/線程池服務器模型 16.3.2線程池文件服務器示例
7章本地通信與原始套接口 17.1sock實現本地進程間通信 17.1.1使用socket實現本地進程通信 17.1.2使用AF_UNIX實現本機數據流 17.2本地socket傳遞文件描述符 17.2.1sendmsg/recvmsg函數 17.2.2傳遞文件描述符示例 17.3原始套應用程序開發 17.3.1原始套接口基本原理 17.3.2原始套接口實現ping應用程序 17.3.3原始套實現DOS攻擊
8章音頻應用程序開發基礎 18.1WAV音頻文件格式分析 18.1.1數字音頻基本參數 18.1.2WAV音頻文件結構 18.1.3讀出WAV格式文件頭信息 18.4.4MP3文件格式 18.2OSS音頻設備編程 18.2.1OSS音頻設備基本架構 18.2.2OSS音頻編程應用示例 18.3ALSA音頻設備編程 18.3.1ALSA基本架構 18.3.2alsa-libs基本應用 18.3.3ALSA音頻編程示例
" |