出版時(shí)間:2012-11 出版社:楊宗德、呂光宏、 劉雍 人民郵電出版社 (2012-11出版)
Tag標(biāo)簽:無(wú)
內(nèi)容概要
《Linux高級(jí)程序設(shè)計(jì)(第三版)》圍繞Linux操作系統(tǒng)“一切都是文件”的特點(diǎn),講述了Linux操作系統(tǒng)下應(yīng)用層“一段執(zhí)行單元(進(jìn)程)對(duì)系統(tǒng)資源(CPU資源、各類文件資源)的管理”。詳細(xì)介紹了Linux系統(tǒng)編程環(huán)境及編程工具(GCC/Makefile/GDB)、文件管理(文件屬性控制、ANSI以及POSIX標(biāo)準(zhǔn)下文件讀寫(xiě)操作、終端編程)、進(jìn)程管理(創(chuàng)建、退出、執(zhí)行、等待、屬性控制)、進(jìn)程間通信(管道、消息隊(duì)列、共享內(nèi)存)、進(jìn)程間同步機(jī)制(信號(hào)量)、進(jìn)程間異步機(jī)制(信號(hào))、線程管理(創(chuàng)建、退出、取消等以及屬性控制)、線程間同步(互斥鎖、讀寫(xiě)鎖、條件變量)、線程與信號(hào)以及BSD socket編程中的TCP、UDP、原始套接口、網(wǎng)絡(luò)服務(wù)器應(yīng)用開(kāi)發(fā)等內(nèi)容,并對(duì)Linux系統(tǒng)下的音頻應(yīng)用程序開(kāi)發(fā)做了講解。
《Linux高級(jí)程序設(shè)計(jì)(第三版)》內(nèi)容豐富、緊扣應(yīng)用,適合從事Linux下C應(yīng)用編程的人員閱讀,也適合從事嵌入式Linux開(kāi)發(fā)的人員閱讀。
書(shū)籍目錄
目 錄 第1章 Linux下C語(yǔ)言開(kāi)發(fā)環(huán)境 11.1 Linux操作系統(tǒng)簡(jiǎn)介 21.1.1 Linux操作系統(tǒng)簡(jiǎn)介 21.1.2 GNU/Linux簡(jiǎn)介 31.1.3 相關(guān)術(shù)語(yǔ)介紹 31.2 Linux開(kāi)發(fā)初步 51.2.1 Linux下C程序標(biāo)準(zhǔn) 51.2.2 庫(kù)函數(shù)和系統(tǒng)調(diào)用 71.2.3 在線文檔介紹 81.2.4 獲取錯(cuò)誤信息 91.3 部分常用工具簡(jiǎn)介 101.3.1 tar打包器 101.3.2 Linux常用命令及工具 111.4 Linux下編碼風(fēng)格 151.4.1 GNU編碼規(guī)范 161.4.2 Linux內(nèi)核編碼規(guī)范 17第2章 Linux下C語(yǔ)言開(kāi)發(fā)工具 192.1 常用編輯工具 202.1.1 VIM編輯器 202.1.2 Emacs編輯器 222.1.3 Source Insight工具 232.2 GCC/GDB編譯調(diào)試工具基礎(chǔ) 272.2.1 GCC/G++簡(jiǎn)單介紹 282.2.2 GDB調(diào)試工具簡(jiǎn)介 302.2.3 使用GCC編譯C程序示例 312.2.4 使用g++編譯C++程序示例 322.2.5 GDB演示示例 33第3章 Linux進(jìn)程存儲(chǔ)管理 353.1 Linux程序存儲(chǔ)結(jié)構(gòu)與進(jìn)程結(jié)構(gòu) 363.1.1 Linux可執(zhí)行文件結(jié)構(gòu) 363.1.2 Linux進(jìn)程結(jié)構(gòu) 373.1.3 C變量及函數(shù)存儲(chǔ)類型 393.1.4 棧和堆的區(qū)別 443.1.5 示例:查看代碼中各數(shù)據(jù)存儲(chǔ)位置 453.1.6 常見(jiàn)內(nèi)存錯(cuò)誤示例分析 483.2 ANSI C動(dòng)態(tài)內(nèi)存管理 503.2.1 內(nèi)存分配的基本方式 503.2.2 示例:為程序申請(qǐng)動(dòng)態(tài)內(nèi)存空間 503.2.3 內(nèi)存數(shù)據(jù)管理函數(shù) 543.3 Valgrind及valkyrie內(nèi)存管理工具 563.3.1 Valgrind介紹 573.3.2 Valgrind安裝與使用 593.3.3 valgrind圖形化工具Valkyrie 613.3.4 內(nèi)存檢測(cè)示例 623.4 Linux進(jìn)程環(huán)境及系統(tǒng)限制 643.4.1 進(jìn)程與命令行選項(xiàng)及參數(shù) 643.4.2 進(jìn)程與環(huán)境變量 693.4.3 Linux系統(tǒng)限制 703.4.4 Linux時(shí)間管理 72第4章 ANSI C文件IO管理 754.1 文件及文件流 774.1.1 文件與流的基本概念 774.1.2 標(biāo)準(zhǔn)流及流主要功能 784.1.3 文件流指針 794.1.4 緩沖區(qū)類型 814.1.5 指定流緩沖區(qū) 824.2 ANSI C文件I/O操作 854.2.1 打開(kāi)關(guān)閉文件 854.2.2 讀/寫(xiě)文件流 864.2.3 文件流定位 914.2.4 實(shí)現(xiàn)文件復(fù)制操作示例 924.3 流的格式化輸入/輸出操作 944.3.1 printf/scanf函數(shù)分析 944.3.2 fprintf/fscanf函數(shù)分析 954.3.3 sprintf函數(shù)分析 964.3.4 sscanf函數(shù)分析 97第5章 POSIX文件及目錄管理 995.1 文件描述符與內(nèi)核文件表項(xiàng) 1005.1.1 文件流與文件描述符的區(qū)別 1005.1.2 文件表結(jié)構(gòu)圖 1015.1.3 文件描述符與文件流的轉(zhuǎn)換操作 1015.2 POSIX標(biāo)準(zhǔn)下文件IO管理 1035.2.1 創(chuàng)建/打開(kāi)/關(guān)閉文件 1045.2.2 文件控制fcntl 1075.2.3 讀/寫(xiě)文件內(nèi)容 1105.2.4 使用POSIX IO實(shí)現(xiàn)大于2G文件復(fù)制 1115.2.5 文件定位 1125.2.6 同步內(nèi)核緩沖區(qū) 1135.2.7 映射文件到內(nèi)存 1145.2.8 鎖定/解鎖文件 1165.3 目錄流基本操作 1185.3.1 打開(kāi)/關(guān)閉目錄文件 1185.3.2 讀/寫(xiě)目錄內(nèi)容 1195.3.3 定位目錄位置 1215.3.4 添加和刪除目錄 1215.3.5 當(dāng)前工作路徑操作 1225.3.6 文件流、目錄流、文件描述符總結(jié) 1235.4 應(yīng)用案例:遞歸文件目錄復(fù)制操作 1235.4.1 應(yīng)用需求及流程圖 1235.4.2 示例代碼 125第6章 普通文件、連接文件及目錄文件屬性管理 1286.1 Linux文件系統(tǒng)管理 1296.1.1 Linux下VFS虛擬文件系統(tǒng) 1296.1.2 ext2文件系統(tǒng)結(jié)構(gòu) 1306.1.3 目錄文件及常規(guī)文件存儲(chǔ)方法 1326.2 Linux系統(tǒng)下文件類型及屬性 1326.2.1 Linux文件類型及權(quán)限 1326.2.2 Linux文件類型 1336.2.3 文件權(quán)限修飾位 1366.2.4 文件訪問(wèn)權(quán)限位 1376.3 Linux文件屬性管理 1386.3.1 讀取文件屬性 1386.3.2 修改文件權(quán)限操作 1416.3.3 修改系統(tǒng)umask值 1426.3.4 修改文件的擁有者及組 1436.3.5 用戶名/組名與UID/GID的轉(zhuǎn)換 1446.3.6 創(chuàng)建/刪除硬連接 1456.3.7 符號(hào)連接文件特殊操作 1466.3.8 文件時(shí)間屬性修改與時(shí)間處理 1476.4 示例:ls ?l以排序方式列出目錄信息 1496.4.1 需求及知識(shí)點(diǎn)涵蓋 1496.4.2 流程及源代碼實(shí)現(xiàn) 1496.5 示例:實(shí)現(xiàn)tree系統(tǒng)命令 152第7章 終端及串口編程 1567.1 終端設(shè)備類型 1577.1.1 實(shí)際的物理串口 1577.1.2 控制臺(tái)終端 1587.1.3 虛擬終端 1597.1.4 當(dāng)前終端 1597.2 終端屬性控制 1607.2.1 讀取/設(shè)置終端屬性信息 1607.2.2 c_cflag終端控制選項(xiàng) 1617.2.3 c_lflag終端本地選項(xiàng) 1637.2.4 c_iflag終端輸入選項(xiàng) 1657.2.5 c_oflag終端輸出選項(xiàng) 1667.2.6 c_cc[NCCS]終端控制字符 1667.2.7 IOCTLs控制終端 1677.2.8 進(jìn)程與終端 1687.3 串口編程 1697.3.1 串口物理設(shè)備 1697.3.2 串口終端基本操作 1707.3.3 串口編程示例 1717.4 控制臺(tái)終端應(yīng)用基礎(chǔ) 1757.4.1 終端屬性設(shè)置 1757.4.2 控制命令基本格式 1767.4.3 從控制臺(tái)終端獲取信息不回顯 178第8章 Linux進(jìn)程管理與程序開(kāi)發(fā) 1808.1 進(jìn)程環(huán)境及進(jìn)程屬性 1818.1.1 程序、進(jìn)程與進(jìn)程資源 1818.1.2 進(jìn)程狀態(tài) 1828.1.3 進(jìn)程基本屬性 1838.1.4 進(jìn)程用戶屬性 1878.2 進(jìn)程管理及控制 1908.2.1 創(chuàng)建進(jìn)程 1908.2.2 在進(jìn)程中運(yùn)行新代碼 1978.2.3 回收進(jìn)程用戶空間資源 2018.2.4 回收內(nèi)核空間資源 2038.2.5 孤兒進(jìn)程與僵死進(jìn)程 2058.2.6 修改進(jìn)程用戶相關(guān)信息 2068.3 Linux特殊進(jìn)程 2108.3.1 守候進(jìn)程及其創(chuàng)建過(guò)程 2108.3.2 日志信息及其管理 2118.3.3 守候進(jìn)程應(yīng)用示例 214第9章 進(jìn)程間通信——管道 2169.1 進(jìn)程間通信——PIPE 2189.1.1 無(wú)名管道概念 2189.1.2 無(wú)名管道文件操作的特殊性 2189.1.3 文件描述符重定向 2219.1.4 實(shí)現(xiàn)who|sort 2259.1.5 流重定向 2269.2 進(jìn)程間通信——FIFO 2289.2.1 有名管道概念 2289.2.2 有名管道管理及其特殊性 2289.2.3 管道基本特點(diǎn)總結(jié) 232第10章 Linux異步信號(hào)處理機(jī)制 23310.1 Linux常見(jiàn)信號(hào)與處理 23410.1.1 信號(hào)與中斷 23410.1.2 信號(hào)基本概念 23610.1.3 信號(hào)的生命周期 23610.1.4 發(fā)送信號(hào) 23710.2 安裝信號(hào)與捕獲信號(hào) 24210.2.1 信號(hào)處理辦法 24210.2.2 signal安裝信號(hào) 24310.2.3 sigaction安裝信號(hào) 24410.2.4 signal的系統(tǒng)漏洞 24810.3 安裝信號(hào)與捕獲信號(hào) 25010.3.1 設(shè)置進(jìn)程屏蔽信號(hào)集 25010.3.2 獲取當(dāng)前未決的信號(hào) 25110.3.3 信號(hào)集合操作 25110.3.4 信號(hào)集合操作應(yīng)用示例 25210.4 等待信號(hào) 25610.4.1 pause函數(shù) 25610.4.2 sigsuspend函數(shù) 25610.5 信號(hào)應(yīng)用實(shí)例 258第11章 System V進(jìn)程間通信 26111.1 System V IPC基礎(chǔ) 26311.1.1 key值和ID值 26311.1.2 擁有者及權(quán)限 26511.2 消息隊(duì)列 26511.2.1 消息隊(duì)列IPC原理 26511.2.2 Linux消息隊(duì)列管理 26711.2.3 消息隊(duì)列應(yīng)用實(shí)例 26911.3 信號(hào)量通信機(jī)制 27311.3.1 信號(hào)量IPC原理 27311.3.2 Linux信號(hào)量管理操作 27411.3.3 SEM_UNDO參數(shù)的應(yīng)用 27911.3.4 使用信號(hào)量實(shí)現(xiàn)生產(chǎn)消費(fèi)問(wèn)題 28211.4 共享內(nèi)存 28511.4.1 共享內(nèi)存IPC原理 28511.4.2 Linux共享內(nèi)存管理 28611.4.3 共享內(nèi)存的權(quán)限管理示例 28711.4.4 共享內(nèi)存處理應(yīng)用示例 288第12章 Linux多線程編程 29312.1 線程基本概念與線程操作 29412.1.1 線程與進(jìn)程的對(duì)比 29412.1.2 創(chuàng)建線程 29512.1.3 線程退出與等待 29712.1.4 取消線程 29912.1.5 線程與私有數(shù)據(jù) 30212.2 線程同步機(jī)制 30512.2.1 互斥鎖通信機(jī)制 30512.2.2 條件變量通信機(jī)制 30812.2.3 讀寫(xiě)鎖通信機(jī)制 31412.3 多線程異步管理——信號(hào) 31912.3.1 線程信號(hào)管理 31912.3.2 線程信號(hào)應(yīng)用實(shí)例 32012.4 線程屬性控制 32212.4.1 獲取線程ID 32312.4.2 初始化線程屬性對(duì)象 32412.4.3 獲取/設(shè)置線程detachstate屬性 32512.4.4 獲取/設(shè)置線程棧相關(guān)屬性 326第13章 Linux Socket網(wǎng)絡(luò)編程基礎(chǔ) 32813.1 網(wǎng)絡(luò)通信基礎(chǔ) 32913.1.1 TCP/IP協(xié)議簇基礎(chǔ) 32913.1.2 IPv4協(xié)議基礎(chǔ) 33013.1.3 點(diǎn)分十進(jìn)制IP地址與二進(jìn)制IP地址轉(zhuǎn)換 33313.1.4 網(wǎng)絡(luò)數(shù)據(jù)包封包與拆包過(guò)程 33513.1.5 字節(jié)順序與大小端問(wèn)題 34013.2 BSD Socket網(wǎng)絡(luò)通信編程 34413.2.1 BSD TCP通信編程流程 34413.2.2 BSD Socket網(wǎng)絡(luò)編程API 34613.3 使用TCP實(shí)現(xiàn)簡(jiǎn)單聊天程序 35113.3.1 服務(wù)器端代碼分析 35213.3.2 客戶器端代碼分析 35413.4 網(wǎng)絡(luò)調(diào)試工具 35613.4.1 tcpdump的使用 35613.4.2 netstat工具使用 35913.4.3 lsof工具使用 360第14章 TCP高級(jí)應(yīng)用 36214.1 文件I/O方式比較 36314.2 I/O阻塞與非阻塞操作 36414.2.1 阻塞與非阻塞基本概念 36414.2.2 非阻塞應(yīng)用示例 36514.3 socket多路復(fù)用應(yīng)用 36814.3.1 select()與pselect函數(shù)介紹 36814.3.2 poll與ppoll函數(shù) 37014.3.3 多路復(fù)用應(yīng)用示例 37114.4 控制socket文件描述符屬性 37614.4.1 set/getsockopt()修改socket屬性 37614.4.2 fcntl控制socket 37914.4.3 ioctl控制文件描述符 379第15章 UDP網(wǎng)絡(luò)編程應(yīng)用 38315.1 UDP網(wǎng)絡(luò)編程基礎(chǔ) 38415.1.1 UDP網(wǎng)絡(luò)通信流程 38415.1.2 使用AF_INET實(shí)現(xiàn)UDP點(diǎn)對(duì)點(diǎn)通信示例 38515.2 UDP廣播通信 38815.2.1 廣播地址與廣播通信 38815.2.2 UDP廣播通信示例 39015.3 UDP組播通信 39315.3.1 組播地址與組播通信 39315.3.2 UDP組播應(yīng)用示例 39415.4 socket信號(hào)驅(qū)動(dòng) 39915.4.1 異步信號(hào)處理機(jī)制流程 39915.4.2 信號(hào)驅(qū)動(dòng)方式處理UDP數(shù)據(jù) 40015.5 域名與IP信息解析 40315.5.1 Linux下域名解析過(guò)程 40315.5.2 通過(guò)域名返回主機(jī)信息 40415.5.3 通過(guò)域名和IP返回主機(jī)信息 40515.5.4 getaddrinfo獲取主機(jī)信息 406第16章 網(wǎng)絡(luò)服務(wù)器應(yīng)用設(shè)計(jì) 41016.1 迭代服務(wù)器設(shè)計(jì) 41116.1.1 xinetd服務(wù)介紹 41116.1.2 時(shí)間服務(wù)器應(yīng)用 41216.2 多進(jìn)程/多線程并發(fā)服務(wù)器設(shè)計(jì) 41416.2.1 多進(jìn)程實(shí)現(xiàn)多客戶端 41416.2.2 多線程實(shí)現(xiàn)多客戶端 41816.2.3 基于HTTP的多進(jìn)程并發(fā)文件服務(wù)器 41816.3 進(jìn)程池/線程池服務(wù)器設(shè)計(jì) 42816.3.1 進(jìn)程池/線程池服務(wù)器模型 42816.3.2 線程池文件服務(wù)器示例 431第17章 本地通信與原始套接口 44017.1 sock實(shí)現(xiàn)本地進(jìn)程間通信 44117.1.1 使用socket實(shí)現(xiàn)本地進(jìn)程通信 44117.1.2 使用AF_UNIX實(shí)現(xiàn)本機(jī)數(shù)據(jù)流 44217.2 本地socket傳遞文件描述符 44517.2.1 sendmsg/recvmsg函數(shù) 44617.2.2 傳遞文件描述符示例 44617.3 原始套應(yīng)用程序開(kāi)發(fā) 45017.3.1 原始套接口基本原理 45017.3.2 原始套接口實(shí)現(xiàn)ping應(yīng)用程序 45017.3.3 原始套實(shí)現(xiàn)DOS攻擊 456第18章 音頻應(yīng)用程序開(kāi)發(fā)基礎(chǔ) 45918.1 WAV音頻文件格式分析 46018.1.1 數(shù)字音頻基本參數(shù) 46018.1.2 WAV音頻文件結(jié)構(gòu) 46018.1.3 讀出WAV格式文件頭信息 46318.4.4 MP3文件格式 46418.2 OSS音頻設(shè)備編程 46718.2.1 OSS音頻設(shè)備基本架構(gòu) 46718.2.2 OSS音頻編程應(yīng)用示例 46918.3 ALSA音頻設(shè)備編程 47418.3.1 ALSA基本架構(gòu) 47418.3.2 alsa-libs基本應(yīng)用 47618.3.3 ALSA音頻編程示例 481
編輯推薦
《Linux高級(jí)程序設(shè)計(jì)(第三版)》全面介紹Linux編程實(shí)戰(zhàn)的書(shū)籍,作者總結(jié)多年教學(xué)及工程實(shí)踐,整合Linux程序設(shè)計(jì)知識(shí)點(diǎn),涵蓋了Linux操作系統(tǒng)下C應(yīng)用編程所有內(nèi)容,對(duì)每一個(gè)知識(shí)點(diǎn)都用一個(gè)應(yīng)用程序進(jìn)行介紹。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
Linux高級(jí)程序設(shè)計(jì) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版