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