出版時(shí)間:2009-10 出版社:人民郵電出版社 作者:楊宗德,鄧玉春 編著 頁(yè)數(shù):432 字?jǐn)?shù):660000
Tag標(biāo)簽:無(wú)
前言
《Linux高級(jí)程序設(shè)計(jì)》一書(shū)主要介紹Linux應(yīng)用層程序開(kāi)發(fā)中所涉及的系統(tǒng)調(diào)用,主要包括文件管理。進(jìn)程管理。進(jìn)程間通信與同步。線程管理。線程間同步以及網(wǎng)絡(luò)編程等內(nèi)容。要求讀者有較好的C語(yǔ)言及數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)。網(wǎng)絡(luò)技術(shù)基礎(chǔ)。?! inux應(yīng)用開(kāi)發(fā)是目前最為廣泛的軟件開(kāi)發(fā)內(nèi)容之一,同時(shí)也是從事Linux內(nèi)核及驅(qū)動(dòng)開(kāi)發(fā)的基礎(chǔ)。《Linux高級(jí)程序設(shè)計(jì)》一書(shū)出版以來(lái),收到了大量的讀者來(lái)信,對(duì)本書(shū)提出了各種意見(jiàn)和建議,綜合各方面的考慮,筆者做了大量的改進(jìn),推出了它的第2版。這次修訂的原則是: (1)保持和加強(qiáng)原書(shū)優(yōu)點(diǎn),如理論觀點(diǎn)鮮明,注重實(shí)際與應(yīng)用,并添加新的案例, (2)在內(nèi)容上去舊更新,不僅修正了第1版中的錯(cuò)誤和疏漏之處,更對(duì)原版的章節(jié)。內(nèi)容進(jìn)行了更新和補(bǔ)充,力求刪繁就簡(jiǎn)?! ”緯?shū)修訂內(nèi)容如下。 第1章:精簡(jiǎn)文字,修訂部分筆誤,更新編程錯(cuò)誤處理辦法。 第2章:精簡(jiǎn)文字,修訂部分筆誤,刪除部分冗余內(nèi)容,包括對(duì)GCC、GDB、Makefile介紹的內(nèi)容。增加部分工具說(shuō)明。 第3章:精簡(jiǎn)文字,修訂部分筆誤,并對(duì)命令行參數(shù)匹配。進(jìn)程基本環(huán)境等進(jìn)行介紹。 第4章:修訂格式化輸入輸出節(jié)內(nèi)容,增加sscanf/sprintf函數(shù)應(yīng)用內(nèi)容,并增加部分應(yīng)用案例,主要包括流類型的判斷。簡(jiǎn)單shell命令(例如cp)實(shí)現(xiàn)等。 第5章:對(duì)各函數(shù)說(shuō)明及應(yīng)用案例進(jìn)行更新,并增加目錄流編程內(nèi)容?! 〉?章:對(duì)鏈接文件操作函數(shù)進(jìn)行分類歸納整理,并以ls-1應(yīng)用案例總結(jié)第4、5、6章內(nèi)容?! 〉?章:對(duì)進(jìn)程創(chuàng)建。進(jìn)程屬性等內(nèi)容進(jìn)行修訂,添加守候進(jìn)程以及日志管理的內(nèi)容,并對(duì)孤兒進(jìn)程。僵死進(jìn)程進(jìn)行比較。 第8章:精簡(jiǎn)文字,修訂部分筆誤,添加了重定向案例,并對(duì)信號(hào)處理一節(jié)進(jìn)行了總結(jié),更新了各函數(shù)的應(yīng)用案例?! 〉?章:增加雙向隊(duì)列傳遞應(yīng)用案例。信號(hào)量生產(chǎn)消費(fèi)問(wèn)題案例以及信號(hào)量的非阻塞應(yīng)用案例?! 〉?0章:精簡(jiǎn)文字,修訂部分筆誤,增加線程私有數(shù)據(jù)介紹以及各函數(shù)應(yīng)用代碼?! 〉?1章:精簡(jiǎn)文字,修訂部分筆誤。增加線程在信號(hào)處理方面的內(nèi)容?! 〉?2章:精簡(jiǎn)文字,修訂部分筆誤。增加UDP。TCP同步及異步通信案例?! ⌒略龅?3章:對(duì)網(wǎng)絡(luò)編程部分專用函數(shù),包括大小端與字節(jié)順序。socket屬性。地址解析。網(wǎng)絡(luò)調(diào)試工具等相關(guān)內(nèi)容進(jìn)行介紹。 新增第14章:增加對(duì)TCP及UDP高級(jí)編程的介紹,包括TCP多路選擇。TCP非阻塞。信號(hào)驅(qū)動(dòng)。UDP廣播。UDP組播等內(nèi)容。 新增第15章:增加網(wǎng)絡(luò)服務(wù)器構(gòu)建案例,并以構(gòu)建HTTP服務(wù)器為例,介紹了包括文件及目錄管理,進(jìn)行線程管理及通信。網(wǎng)絡(luò)編程內(nèi)容,從而使讀者學(xué)以致用。 在第2版中還增加了大量應(yīng)用案例,特別是增加了大量網(wǎng)絡(luò)編程內(nèi)容,以求為讀者進(jìn)行Linux應(yīng)用程序開(kāi)發(fā)提供一條扎實(shí)的進(jìn)階之路 本書(shū)還提供了完整的代碼和教案,方便廣大師生使用
內(nèi)容概要
本書(shū)以Linux操作系統(tǒng)(內(nèi)核為2.6版本)為開(kāi)發(fā)平臺(tái)、GCC 4.0/GDB 6.3為開(kāi)發(fā)調(diào)試環(huán)境,詳細(xì)介紹了Linux系統(tǒng)下編程環(huán)境及編程工具、文件管理(文件類型、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ě)鎖、條件變量)以及網(wǎng)絡(luò)基本編程、高級(jí)應(yīng)用等內(nèi)容?! ”緯?shū)內(nèi)容豐富、緊扣應(yīng)用,適合從事Linux下C應(yīng)用編程的人員閱讀,也適合從事嵌入式Linux開(kāi)發(fā)的人員閱讀。
書(shū)籍目錄
第1章 Linux下C語(yǔ)言開(kāi)發(fā)環(huán)境 1.1 Linux操作系統(tǒng)簡(jiǎn)介 1.1.1 Linux操作系統(tǒng)簡(jiǎn)介 1.1.2 GNU/Linux簡(jiǎn)介 1.1.3 相關(guān)術(shù)語(yǔ)介紹 1.2 Linux開(kāi)發(fā)初步 1.2.1 Linux下C程序標(biāo)準(zhǔn) 1.2.2 庫(kù)函數(shù)和系統(tǒng)調(diào)用 1.2.3 在線文檔介紹 1.2.4 獲取錯(cuò)誤信息 1.3 部分常用工具簡(jiǎn)介 1.3.1 tar打包器 1.3.2 Linux常用命令及工具 1.4 Linux下編碼風(fēng)格 1.4.1 GNU編碼規(guī)范 1.4.2 Linux內(nèi)核編碼規(guī)范 第2章 Linux下C語(yǔ)言開(kāi)發(fā)工具 2.1 常用編輯工具 2.1.1 VIM編輯器 2.1.2 Emacs編輯器 2.1.3 Source Insight工具 2.2 GCC編譯工具 2.2.1 GCC/G++簡(jiǎn)介 2.2.2 頭文件及預(yù)處理結(jié)果分析 2.3 Make工具與Makefile文件 2.3.1 Make工具簡(jiǎn)介 2.3.2 Makefile常用規(guī)則 2.4 常用調(diào)試工具 2.4.1 GDB調(diào)試工具簡(jiǎn)介 2.4.2 GDB演示示例 2.4.3 GDB調(diào)試器常用語(yǔ)法 2.4.4 strace 2.4.5 GCC程序開(kāi)發(fā)過(guò)程實(shí)例 2.5 Linux庫(kù)文件使用與創(chuàng)建 2.5.1 Linux系統(tǒng)庫(kù)文件管理的基本策略 2.5.2 Linux下靜態(tài)庫(kù)的創(chuàng)建與使用 2.5.3 Linux下共享庫(kù)創(chuàng)建及使用 2.5.4 靜態(tài)庫(kù)與共享庫(kù)的區(qū)別 2.6 Autoconf/Automake自動(dòng)化工具 2.6.1 Autoconf/Automake工具介紹 2.6.2 Autoconf/Automake工具使用示例 第3章 Linux進(jìn)程存儲(chǔ)管理 3.1 Linux程序存儲(chǔ)結(jié)構(gòu)與進(jìn)程結(jié)構(gòu) 3.1.1 Linux可執(zhí)行文件結(jié)構(gòu) 3.1.2 Linux進(jìn)程結(jié)構(gòu) 3.1.3 C變量及函數(shù)存儲(chǔ)類型 3.1.4 棧和堆的區(qū)別 3.1.5 示例:查看代碼中各數(shù)據(jù)存儲(chǔ)位置 3.1.6 常見(jiàn)內(nèi)存錯(cuò)誤示例分析 3.2 ANSI C內(nèi)存管理API函數(shù) 3.2.1 內(nèi)存分配的基本方式 3.2.2 示例:為程序申請(qǐng)動(dòng)態(tài)內(nèi)存空間 3.2.3 內(nèi)存數(shù)據(jù)管理函數(shù) 3.3 常用Linux內(nèi)存管理及調(diào)試工具 3.3.1 mcheck函數(shù) 3.3.2 Valgrind內(nèi)存檢測(cè)工具 3.4 Linux進(jìn)程環(huán)境及系統(tǒng)限制 3.4.1 進(jìn)程與命令參數(shù) 3.4.2 進(jìn)程與環(huán)境變量 3.4.3 Linux系統(tǒng)限制 3.4.4 Linux時(shí)間管理 第4章 ANSI C文件管理 第5章 POSIX文件及目錄管理 第6章 普通文件、連接文件及目錄文件屬性管理 第7章 Linux進(jìn)程管理與程序開(kāi)發(fā) 第8章 進(jìn)程間通信——管道和信號(hào) 第9章 System V進(jìn)程間通信 第10章 Linux多線程編程 第11章 線程間同步機(jī)制 第12章 Linux socket網(wǎng)絡(luò)編程 第13章 網(wǎng)絡(luò)編程工具介紹 第14章 網(wǎng)絡(luò)編程高級(jí)應(yīng)用 第15章 構(gòu)建網(wǎng)絡(luò)服務(wù)器
章節(jié)摘錄
第1章 Linux下C語(yǔ)言開(kāi)發(fā)環(huán)境 1.1 Linux操作系統(tǒng)簡(jiǎn)介 1.1.1 Linux操作系統(tǒng)簡(jiǎn)介 UNIX操作系統(tǒng)于1969年由Ken Thompson在AT&T貝爾實(shí)驗(yàn)室的一臺(tái)DEC PDP-7計(jì)算機(jī)上實(shí)現(xiàn)。后來(lái)Ken Thompson和Dennis Ritchie使用C語(yǔ)言對(duì)整個(gè)系統(tǒng)進(jìn)行了再加工和編寫(xiě),使得UNIX能夠很容易地移植到其他硬件的計(jì)算機(jī)上。由于此時(shí)AT&T還沒(méi)有把UNIX作為它的正式商品,因此研究人員只是在實(shí)驗(yàn)室內(nèi)部使用并完善它。正是由于UNIX是被作為研究項(xiàng)目,其他科研機(jī)構(gòu)和大學(xué)的計(jì)算機(jī)研究人員也希望能得到這個(gè)系統(tǒng),以便進(jìn)行自己的研究。AT&T采用分發(fā)許可證的方法,大學(xué)和研究機(jī)構(gòu)僅僅需要很少的費(fèi)用就能獲得UNIX的源代碼以進(jìn)行研究。UNIX的源代碼被散發(fā)到各個(gè)大學(xué),一方面使得科研人員能夠根據(jù)需要改進(jìn)系統(tǒng),或者將其移植到其他的硬件環(huán)境中去,另一方面培養(yǎng)了大量懂得UNIX使用和編程的學(xué)生,這使UNIX的使用更為普及?! 〉搅?0世紀(jì)70年代末,在UNIX發(fā)展到版本6之后,AT&T認(rèn)識(shí)到了UNIX的價(jià)值,并成立了UNIX系統(tǒng)實(shí)驗(yàn)室(UNIX System Lab,USL)來(lái)繼續(xù)發(fā)展UNIX。因此一方面AT&T繼續(xù)發(fā)展內(nèi)部使用的UNIX版本7,一方面由USL開(kāi)發(fā)對(duì)外正式發(fā)行的UNIX版本,同時(shí)AT&T也宣布對(duì)UNIX產(chǎn)品擁有所有權(quán)。幾乎在同時(shí),加州大學(xué)伯克利分校計(jì)算機(jī)系統(tǒng)研究小組(CSRG)借助UNIX對(duì)操作系統(tǒng)進(jìn)行了研究,他們對(duì)UNIX進(jìn)行的改進(jìn)相當(dāng)多,增加了很多當(dāng)時(shí)非常先進(jìn)的特性,包括更好的內(nèi)存管理、快速且健壯的文件系統(tǒng)等,大部分原有的源代碼都被重寫(xiě),很多其他的UNIX使用者,包括其他大學(xué)和商業(yè)機(jī)構(gòu),都希望能得到經(jīng)CSRG改進(jìn)的UNIX系統(tǒng)。因此CSRG的研究人員把他們的UNIX組成一個(gè)完整的UNIX系統(tǒng)——BSD UNIX(Berkeley Software Distribution)向外發(fā)行。
編輯推薦
《Linux高級(jí)程序設(shè)計(jì)(第2版)》主要涵養(yǎng)了Linux下C應(yīng)用層程序開(kāi)發(fā)的大部分內(nèi)容。編程基本工具GCC/GDB的使用方法,庫(kù)文件的管理。ANSI標(biāo)準(zhǔn)I/O管理、POSIX標(biāo)準(zhǔn)I/O管理、普通文件和目錄管理以及內(nèi)存管理?! ∵M(jìn)程管理及進(jìn)程間通信機(jī)制,包括同一臺(tái)主機(jī)通信機(jī)制(無(wú)名管道、命名管道、信號(hào)、信號(hào)量、消息隊(duì)列以及共享內(nèi)存),網(wǎng)絡(luò)主機(jī)間通信機(jī)制(socket)。 線程管理及線程問(wèn)通信機(jī)制,包括互斥鎖、條件變量、信號(hào)燈、信號(hào)和讀寫(xiě)鎖。由淺入深,按理淪分析→實(shí)際操作→案例分析的順序組織內(nèi)容 作者多年教學(xué)及工程實(shí)踐的總結(jié),整合了Linux程序設(shè)計(jì)的絕大多數(shù)知識(shí)點(diǎn),涵蓋Linux操作系統(tǒng)下C語(yǔ)言應(yīng)用程序設(shè)計(jì)的所有關(guān)鍵內(nèi)容 內(nèi)容豐富 總結(jié)作者多年教學(xué)及工程經(jīng)驗(yàn),整合Linux程序設(shè)汁的絕大多數(shù)知識(shí)點(diǎn),涵蓋Linux操作系統(tǒng)下C語(yǔ)言應(yīng)用程序設(shè)計(jì)的所有關(guān)鍵內(nèi)容。循序漸進(jìn)避開(kāi)大量理論,按知識(shí)體系介紹→應(yīng)用函數(shù)分析→應(yīng)用案例開(kāi)發(fā)的順序?qū)懽鳎x者可以針對(duì)每個(gè)知識(shí)點(diǎn)進(jìn)行編程演練?! “咐笇?dǎo) 《Linux高級(jí)程序設(shè)計(jì)(第2版)》遵循案例教學(xué)思想,每一個(gè)知識(shí)點(diǎn)都對(duì)應(yīng)一個(gè)應(yīng)用程序,且所有代碼都在教學(xué)實(shí)踐過(guò)程中使用過(guò),讀者可以直接編譯調(diào)試?! 【o扣應(yīng)用 《Linux高級(jí)程序設(shè)計(jì)(第2版)》所采用的開(kāi)發(fā)平臺(tái)為2.6內(nèi)核,開(kāi)發(fā)工具為GCC 4.0。
圖書(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ī)版