Linux高級程序設(shè)計

出版時間:2009-10  出版社:人民郵電出版社  作者:楊宗德,鄧玉春 編著  頁數(shù):432  字?jǐn)?shù):660000  
Tag標(biāo)簽:無  

前言

  《Linux高級程序設(shè)計》一書主要介紹Linux應(yīng)用層程序開發(fā)中所涉及的系統(tǒng)調(diào)用,主要包括文件管理。進程管理。進程間通信與同步。線程管理。線程間同步以及網(wǎng)絡(luò)編程等內(nèi)容。要求讀者有較好的C語言及數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)。網(wǎng)絡(luò)技術(shù)基礎(chǔ)。?! inux應(yīng)用開發(fā)是目前最為廣泛的軟件開發(fā)內(nèi)容之一,同時也是從事Linux內(nèi)核及驅(qū)動開發(fā)的基礎(chǔ)?!禠inux高級程序設(shè)計》一書出版以來,收到了大量的讀者來信,對本書提出了各種意見和建議,綜合各方面的考慮,筆者做了大量的改進,推出了它的第2版。這次修訂的原則是:  (1)保持和加強原書優(yōu)點,如理論觀點鮮明,注重實際與應(yīng)用,并添加新的案例,  (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ù)應(yīng)用內(nèi)容,并增加部分應(yīng)用案例,主要包括流類型的判斷。簡單shell命令(例如cp)實現(xiàn)等?! 〉?章:對各函數(shù)說明及應(yīng)用案例進行更新,并增加目錄流編程內(nèi)容。  第6章:對鏈接文件操作函數(shù)進行分類歸納整理,并以ls-1應(yīng)用案例總結(jié)第4、5、6章內(nèi)容?! 〉?章:對進程創(chuàng)建。進程屬性等內(nèi)容進行修訂,添加守候進程以及日志管理的內(nèi)容,并對孤兒進程。僵死進程進行比較。  第8章:精簡文字,修訂部分筆誤,添加了重定向案例,并對信號處理一節(jié)進行了總結(jié),更新了各函數(shù)的應(yīng)用案例。  第9章:增加雙向隊列傳遞應(yīng)用案例。信號量生產(chǎn)消費問題案例以及信號量的非阻塞應(yīng)用案例?! 〉?0章:精簡文字,修訂部分筆誤,增加線程私有數(shù)據(jù)介紹以及各函數(shù)應(yīng)用代碼?! 〉?1章:精簡文字,修訂部分筆誤。增加線程在信號處理方面的內(nèi)容?! 〉?2章:精簡文字,修訂部分筆誤。增加UDP。TCP同步及異步通信案例?! ⌒略龅?3章:對網(wǎng)絡(luò)編程部分專用函數(shù),包括大小端與字節(jié)順序。socket屬性。地址解析。網(wǎng)絡(luò)調(diào)試工具等相關(guān)內(nèi)容進行介紹?! ⌒略龅?4章:增加對TCP及UDP高級編程的介紹,包括TCP多路選擇。TCP非阻塞。信號驅(qū)動。UDP廣播。UDP組播等內(nèi)容?! ⌒略龅?5章:增加網(wǎng)絡(luò)服務(wù)器構(gòu)建案例,并以構(gòu)建HTTP服務(wù)器為例,介紹了包括文件及目錄管理,進行線程管理及通信。網(wǎng)絡(luò)編程內(nèi)容,從而使讀者學(xué)以致用?! ≡诘?版中還增加了大量應(yīng)用案例,特別是增加了大量網(wǎng)絡(luò)編程內(nèi)容,以求為讀者進行Linux應(yīng)用程序開發(fā)提供一條扎實的進階之路  本書還提供了完整的代碼和教案,方便廣大師生使用

內(nèi)容概要

  本書以Linux操作系統(tǒng)(內(nèi)核為2.6版本)為開發(fā)平臺、GCC 4.0/GDB 6.3為開發(fā)調(diào)試環(huán)境,詳細(xì)介紹了Linux系統(tǒng)下編程環(huán)境及編程工具、文件管理(文件類型、ANSI以及POSIX標(biāo)準(zhǔn)下文件讀寫操作)、進程管理(創(chuàng)建、退出、執(zhí)行、等待、屬性控制)、進程間通信(管道、消息隊列、共享內(nèi)存)、進程間同步機制(信號量)、進程間異步機制(信號)、線程管理(創(chuàng)建、退出、取消等以及屬性控制)、線程間同步(互斥鎖、讀寫鎖、條件變量)以及網(wǎng)絡(luò)基本編程、高級應(yīng)用等內(nèi)容?! ”緯鴥?nèi)容豐富、緊扣應(yīng)用,適合從事Linux下C應(yīng)用編程的人員閱讀,也適合從事嵌入式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 相關(guān)術(shù)語介紹  1.2 Linux開發(fā)初步   1.2.1 Linux下C程序標(biāo)準(zhǔn)   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下編碼風(fēng)格   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 頭文件及預(yù)處理結(jié)果分析  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程序存儲結(jié)構(gòu)與進程結(jié)構(gòu)   3.1.1 Linux可執(zhí)行文件結(jié)構(gòu)   3.1.2 Linux進程結(jié)構(gòu)   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)絡(luò)編程 第13章 網(wǎng)絡(luò)編程工具介紹 第14章 網(wǎng)絡(luò)編程高級應(yīng)用 第15章 構(gòu)建網(wǎng)絡(luò)服務(wù)器 

章節(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是被作為研究項目,其他科研機構(gòu)和大學(xué)的計算機研究人員也希望能得到這個系統(tǒng),以便進行自己的研究。AT&T采用分發(fā)許可證的方法,大學(xué)和研究機構(gòu)僅僅需要很少的費用就能獲得UNIX的源代碼以進行研究。UNIX的源代碼被散發(fā)到各個大學(xué),一方面使得科研人員能夠根據(jù)需要改進系統(tǒng),或者將其移植到其他的硬件環(huán)境中去,另一方面培養(yǎng)了大量懂得UNIX使用和編程的學(xué)生,這使UNIX的使用更為普及。  到了20世紀(jì)70年代末,在UNIX發(fā)展到版本6之后,AT&T認(rèn)識到了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)品擁有所有權(quán)。幾乎在同時,加州大學(xué)伯克利分校計算機系統(tǒng)研究小組(CSRG)借助UNIX對操作系統(tǒng)進行了研究,他們對UNIX進行的改進相當(dāng)多,增加了很多當(dāng)時非常先進的特性,包括更好的內(nèi)存管理、快速且健壯的文件系統(tǒng)等,大部分原有的源代碼都被重寫,很多其他的UNIX使用者,包括其他大學(xué)和商業(yè)機構(gòu),都希望能得到經(jīng)CSRG改進的UNIX系統(tǒng)。因此CSRG的研究人員把他們的UNIX組成一個完整的UNIX系統(tǒng)——BSD UNIX(Berkeley Software Distribution)向外發(fā)行。

編輯推薦

  《Linux高級程序設(shè)計(第2版)》主要涵養(yǎng)了Linux下C應(yīng)用層程序開發(fā)的大部分內(nèi)容。編程基本工具GCC/GDB的使用方法,庫文件的管理。ANSI標(biāo)準(zhǔn)I/O管理、POSIX標(biāo)準(zhǔn)I/O管理、普通文件和目錄管理以及內(nèi)存管理?! ∵M程管理及進程間通信機制,包括同一臺主機通信機制(無名管道、命名管道、信號、信號量、消息隊列以及共享內(nèi)存),網(wǎng)絡(luò)主機間通信機制(socket)?! 【€程管理及線程問通信機制,包括互斥鎖、條件變量、信號燈、信號和讀寫鎖。由淺入深,按理淪分析→實際操作→案例分析的順序組織內(nèi)容  作者多年教學(xué)及工程實踐的總結(jié),整合了Linux程序設(shè)計的絕大多數(shù)知識點,涵蓋Linux操作系統(tǒng)下C語言應(yīng)用程序設(shè)計的所有關(guān)鍵內(nèi)容  內(nèi)容豐富 總結(jié)作者多年教學(xué)及工程經(jīng)驗,整合Linux程序設(shè)汁的絕大多數(shù)知識點,涵蓋Linux操作系統(tǒng)下C語言應(yīng)用程序設(shè)計的所有關(guān)鍵內(nèi)容。循序漸進避開大量理論,按知識體系介紹→應(yīng)用函數(shù)分析→應(yīng)用案例開發(fā)的順序?qū)懽?,讀者可以針對每個知識點進行編程演練?! “咐笇?dǎo) 《Linux高級程序設(shè)計(第2版)》遵循案例教學(xué)思想,每一個知識點都對應(yīng)一個應(yīng)用程序,且所有代碼都在教學(xué)實踐過程中使用過,讀者可以直接編譯調(diào)試?! 【o扣應(yīng)用 《Linux高級程序設(shè)計(第2版)》所采用的開發(fā)平臺為2.6內(nèi)核,開發(fā)工具為GCC 4.0。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Linux高級程序設(shè)計 PDF格式下載


用戶評論 (總計17條)

 
 

  •   學(xué)習(xí)linux省了不少麻煩,看了三四本,這本最好了。
  •   寫的還好,適合像我這樣的初學(xué)者
  •   很經(jīng)典,該講的都講了,對作者和翻譯表示支持。不過有些地方作者和翻譯說的并不很通順,建議大家讀的時候不要死讀一句話,多看一下上下文,理解就可以了。
  •   買來當(dāng)課本的。。。。很詳細(xì)~
  •   是一本不錯的書,正在學(xué)習(xí)中,有一定幫助,是別人推薦的。
  •   是一本好書,言簡意賅,通俗易懂
  •   很不錯的書很不錯的快遞速度
  •   一本不錯的書,good
  •   這門書詳細(xì)的講解了LINUX進程間的通信和網(wǎng)絡(luò)編程,第二版還在原來的基礎(chǔ)上增加了大量的實例,尤其在網(wǎng)絡(luò)編程這個章節(jié)里增加了現(xiàn)在實用的HTTP知識,適合想學(xué)嵌入式應(yīng)用開發(fā)初級者和中級著自學(xué)的一本好書。
  •   內(nèi)容豐富,言簡意賅,每一句話都要仔細(xì)去看,很多重要的內(nèi)容沒有注重強調(diào),一筆帶過。
    中的來說,值得購買,不過不建議新手閱讀,至少你的有操作系統(tǒng)知識以及l(fā)inux操作和c語言功底。
  •   比較適合linux編程初學(xué)者
  •   書很不錯,印刷質(zhì)量好,內(nèi)容也比較適合,很滿意!
  •   還可以吧,內(nèi)容不是很具體。
  •   在當(dāng)當(dāng)?shù)谝淮钨I東西,感覺不錯,收到的書也很滿意,值得這個價。下次買東西還來!
  •   雖然有點小錯誤,但整體還不錯
  •   這本書名為linux高級程序設(shè)計不如linux下c程序設(shè)計來的實際,整本書介紹了linux下c編譯需要的基礎(chǔ)知識和工具,并討論了一些基本的函數(shù),并沒有涉及到很高深的知識,只要懂得c語言就能看懂。
    書中有些印刷的小錯誤,并不影響閱讀,但是讓人看著很不舒服,希望在下一版中能改進,有些需要文字解釋的地方作者喜歡印代碼,有偷懶的嫌疑,但是也能在閱讀的同時調(diào)動你的大腦,也算是有利有弊吧,最后還是要推薦下linux程序設(shè)計這本書,雖然價格貴了很多,但是講解的很詳細(xì),如果追求速成可以看這本書,想深入點了解的話還是看老外的書。
  •   內(nèi)容講得很泛,很多知識點都不夠詳細(xì),不夠全面@!
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7