Linux C從入門到精通(第2版) ( 簡體 字) |
作者:明日科技 | 類別:1. -> 作業系統 -> Linux |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 50170 詢問書籍請說出此書號!【缺書】 NT售價: 450 元 |
出版日:10/1/2018 |
頁數:450 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302498803 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:叢書說明:“軟件開發視頻大講堂”叢書(第1版)于2008年8月出版,因其編寫細膩,易學實用,配備全程視頻等特色,在軟件開發類圖書市場上產生了很大反響,絕大部分品種在全國軟件開發零售圖書排行榜中名列前茅,2009年多個品種被評為“全國優秀暢銷書”。 “軟件開發視頻大講堂”叢書(第2版)于2010年8月出版,出版后,絕大部分品種在全國軟件開發類零售圖書排行榜中依然名列前茅。叢書中多個品種被百余所高校計算機相關專業、軟件學院選為教學參考書,在眾多的軟件開發類圖書中成為最耀眼的品牌之一。叢書累計銷售40多萬冊。 “軟件開發視頻大講堂”叢書(第3版)于2012年8月出版,根據讀者需要,增刪了品種,重新錄制了視頻,提供了從“入門學習→實例應用→模塊開發→項目開發→能力測試→面試”等各個階段的海量開發資源庫。因叢書編寫結構合理、實例選擇經典實用,叢書迄今累計銷售90多萬冊。 “軟件開發視頻大講堂”叢書(第4版)在繼承前3版所有優點的基礎上,修正了前3版圖書中發現的疏漏之處,并結合目前市場需要,進一步對叢書品種進行了完善,對相關內容進行了更新優化,使之更適合讀者學習,為了方便教學,還提供了教學課件PPT。 Linux系統是一種類UNIX完整的操作系統。它不僅功能強大、運行穩定,而且用戶可免費使用、分析其源代碼。而C語言是一種計算機程序設計語言,它既有高級語言的特性,又具有匯編語言的特性,可以編寫系統應用程序。而整個Linux系統就是由C語言編寫的,因此在Linux系統下學習C語言,更接近C語言的本質,體會更為深刻。 本書內容 本書提供了從入門到編程高手所必備的各類知識,共分4篇,大體結構如下圖所示。 第1篇:基礎知識。本篇通過介紹Linux系統概述、C語言基礎、內存管理、基本編輯器VIM和Emacs、GCC編譯器、GDB調試工具等內容,并結合書中豐富的圖示、實例、經典的范例、錄像等幫助讀者快速掌握C語言,并為學習以后的知識奠定堅實的基礎。 第2篇:核心技術。本篇主要介紹了進程控制、進程間通信、文件操作、文件的輸入/輸出操作、信號及信號處理、網絡編程、make編譯基礎、Linux系統下的C語言與數據庫、集成開發環境等內容,通過這一部分的學習,可以幫助讀者在Linux系統下學習C語言得到進一步的提升,體會到C語言編程的本質所在。書中結合豐富的圖示、實例、經典的范例和錄像等,幫助讀者更輕松地掌握Linux系 統下C語言編程的核心技術。 第3篇:高級應用。本篇主要介紹了界面開發基礎、界面布局、界面構件開發、Glade設計程序界面等Linux系統下的圖像界面編程的高級應用,通過這一部分的學習,讀者能夠進一步了解Linux系統中圖形界面的豐富應用。 第4篇:項目實戰。本篇通過開發一個大型、完整的MP3音樂播放器,運用軟件工程的設計思想,讓讀者學習如何進行軟件項目的實踐開發。書中按照編寫背景→需求分析→主窗口設計→建立子構件→各功能函數的實現過程進行介紹,帶領讀者一步一步親身體驗開發項目的全過程。 本書特點 ?由淺入深,循序漸進:本書以初、中級程序員為對象,先從C語言基礎學起,再學習C語言的核心技術,然后學習C語言的高級應用,最后學習開發一個完整項目。結合Linux原理講解C語言開發,為Linux環境下的C語言開發提供從入門到精通的捷徑。本書講解過程中步驟詳盡、版式新穎,在操作的內容圖片上以編號+內容的方式進行標注,讓讀者在閱讀中一目了然,從而快速把握書中內容。 ?語音視頻,講解詳盡:對于初學者來說,視頻講解是最好的導師,它能夠引導初學者快速入門,使初學者感受到編程的快樂和成就感,進一步增強學習的信心。鑒于此,本書為大部分章節都配備了視頻講解,使用手機掃描正文小節標題一側的二維碼,即可在線學習程序開發的全過程。 ?實例典型,輕松易學:通過例子學習是最好的學習方式,本書通過一個知識點、一個例子、一個結果、一段評析、一個綜合應用的模式,透徹詳盡地講述了實際開發中所需的各類知識。 書中還增加了很多接近生活、易于理解的經典范例,使讀者能夠從枯燥的編程中找到在生活中的趣味應用。 ?精彩欄目,貼心提醒:本書根據需要在各章使用了很多“注意”“說明”等小欄目,讓讀者可以在學習過程中更輕松地理解相關知識點及概念,并輕松地掌握個別技術的應用技巧。 ?應用實踐,隨時練習:書中幾乎每章都提供了“實踐與練習”,讓讀者能夠通過對問題的解答重新回顧、熟悉所學的知識,舉一反三,為進一步學習做好充分的準備。 讀者對象 ?初學編程的自學者?編程愛好者 ?大中專院校的老師和學生?相關培訓機構的老師和學員 ?做畢業設計的學生?初、中級程序開發人員 ?程序測試及維護人員?參加實習的“菜鳥”程序員 讀者服務 學習本書時,請先掃描封底的權限二維碼(需要刮開涂層)獲取學習權限,然后即可免費學習書中的所有線上線下資源。本書所附贈的各類學習資源,讀者可登錄清華大學出版社網站(www.tup.com.cn),在對應圖書頁面下獲取其下載方式。也可掃描圖書封底的“文泉云盤”二維碼,獲取其下載方式。 為了方便解決本書疑難問題,讀者朋友可加我們的企業QQ:4006751066(可容納10萬人),也可以登錄www.mingrisoft.com留言,我們將竭誠為您服務。 致讀者 本書由明日科技C程序開發團隊組織編寫,主要編寫人員有李菁菁、王小科、王國輝、賽奎春、張鑫、楊麗、高春艷、辛洪郁、周佳星、申小琦、馮春龍、白宏健、何平、張寶華、張云凱、龐鳳、申野、宋萬勇、賈景波、趙寧、李磊、王赫男、葛忠月、劉杰、張渤洋、喬宇、卞昉、汪倩、譚暢、劉媛媛、梁英、隋妍妍、李雪、李穎、鐘成浩、朱艷紅、孫勃、潘建羽、岳彩龍、李春林、林馳、白兆松、依瑩瑩、王歡、胡冬、宋禹蒙等。在編寫本書的過程中,我們以科學、嚴謹的態度,力求精益求精,但錯誤、疏漏之處在所難免,敬請廣大讀者批評指正。 感謝您購買本書,希望本書能成為您編程路上的領航者。 “零門檻”編程,一切皆有可能。祝讀書快樂! 編 者 |
內容簡介:《Linux C從入門到精通(第2版)》從初學者的角度出發,通過通俗易懂的語言,豐富多彩的實例,詳細介紹了在Linux系統下使用C 語言進行應用程序開發應該掌握的各方面技術。全書共20章,包括Linux系統概述、C語言基礎、內存管理、基本編輯器VIM和Emacs、GCC編譯器、GDB調試工具、進程控制、進程間通信、文件操作、文件的輸入/輸出操作、信號及信號處理、網絡編程、make編譯基礎、Linux系統下的C 語言與數據庫、集成開發環境、界面開發基礎、界面布局、界面構件開發、Glade設計程序界面、MP3 音樂播放器。 |
目錄:第1篇基礎知識 第1章Linux系統概述2 視頻講解:12分鐘 1.1Linux的起源與發展3 1.1.1GNU項目的前前后后3 1.1.2Linux的誕生.3 1.1.3Linux的現狀.4 1.2Linux的內核與版本4 1.2.1Linux內核的介紹.4 1.2.2Linux對硬件平臺的支持.5 1.2.3常見Linux的發行版本5 1.3Linux系統的安裝5 1.3.1Linux系統安裝的硬件要求.6 1.3.2圖形化安裝Linux.6 1.3.3第一次啟動Linux系統11 1.4小結13 第2章C語言基礎14 視頻講解:35分鐘 2.1C語言概述.15 2.2數據類型15 2.2.1基本類型16 2.2.2構造類型18 2.2.3指針類型20 2.2.4空類型21 2.3運算符和表達式21 2.3.1運算符21 2.3.2表達式23 2.4函數23 2.5程序語句25 2.5.1控制語句26 2.5.2函數調用語句26 2.5.3表達式語句27 2.5.4空語句27 2.5.5復合語句27 2.6預處理命令27 2.6.1宏定義28 2.6.2文件包含29 2.7小結29 2.8實踐與練習29 第3章內存管理30 視頻講解:15分鐘 3.1內存分類31 3.1.1動態內存31 3.1.2靜態內存31 3.1.3動態內存與靜態內存的區別32 3.2內存管理的基本操作32 3.2.1分配內存32 3.2.2釋放內存35 3.3鏈表35 3.4小結37 3.5實踐與練習37 第4章基本編輯器VIM和Emacs.38 視頻講解:12分鐘 4.1初識VIM.39 4.1.1VIM的進入與退出.39 4.1.2VIM基本模式.39 4.2VIM的基本操作.40 4.2.1VIM的命令行模式操作.40 4.2.2VIM的編輯模式操作.42 4.2.3VIM的底行模式操作.42 4.3初識Emacs.43 4.4Emacs的基本操作.43 4.4.1啟動Emacs43 4.4.2基本操作44 4.5小結46 第5章GCC編譯器47 視頻講解:27分鐘 5.1初識GCC編譯器48 5.1.1第一次編譯48 5.1.2GCC選項概述48 5.1.3警告.49 5.1.4GCC調試50 5.1.5代碼優化52 5.2GCC編譯的基本流程.53 5.2.1C預處理54 5.2.2編譯.54 5.2.3匯編.54 5.2.4鏈接54 5.3其他編譯工具簡介54 5.3.1C++編譯器G++.55 5.3.2EGCS55 5.3.3F2C和P2C55 5.4小結55 第6章GDB調試工具.56 視頻講解:31分鐘 6.1初識GDB調試器57 6.1.1GDB調試器概述.57 6.1.2用GDB調試簡單程序58 6.2GDB調試器的基本功能與常用命令.59 6.2.1啟動調試程序功能及其命令60 6.2.2使用斷點功能及其命令61 6.2.3檢查數據的功能及其命令63 6.2.4使用觀察窗口功能及其命令66 6.2.5檢查棧信息功能及其命令66 6.2.6檢查源代碼功能及其命令67 6.2.7改變程序的運行功能及其命令69 6.3多線程程序調試70 6.4Linux平臺上的其他調試工具71 6.5小結71 第2篇核心技術 第7章進程控制74 視頻講解:57分鐘 7.1進程概述75 7.1.1進程的定義75 7.1.2進程的相關信息76 7.2進程的基本操作77 7.2.1進程創建77 7.2.2進程等待83 7.2.3進程結束87 7.3多個進程間的關系89 7.3.1進程組89 7.3.2時間片的分配90 7.4線程91 7.4.1線程概述92 7.4.2線程的屬性92 7.5進程的特殊操作94 7.5.1獲取進程標識94 7.5.2設置進程標識98 7.6小結99 7.7實踐與練習99 第8章進程間通信100 視頻講解:41分鐘 8.1進程間通信概述101 8.1.1進程間通信的工作原理.101 8.1.2進程間通信的主要分類.101 8.2管道與命名管道101 8.2.1管道基本定義.102 8.2.2管道創建和管道關閉.102 8.2.3pipe()函數實現管道通信.102 8.2.4命名管道基本定義.105 8.2.5在Shell中創建命名管道.105 8.2.6mkfifo()函數創建命名管道.106 8.3共享內存108 8.3.1SYSV子系統的基本知識108 8.3.2共享內存相關操作.109 8.3.3共享內存實現進程間通信.112 8.4信號量114 8.4.1信號量的工作原理.114 8.4.2信號量的相關操作.115 8.4.3信號量實現進程間通信.117 8.5消息隊列119 8.5.1消息隊列的相關操作.120 8.5.2消息隊列實現進程間通信.122 8.6小結124 8.7實踐與練習124 第9章文件操作125 視頻講解:37分鐘 9.1文件初探126 9.1.1文件與文件系統的概念.126 9.1.2文件的屬性.126 9.1.3文件的相關信息.127 9.2文件的相關操作128 9.2.1修改文件屬性.129 9.2.2復制文件描述符.132 9.2.3獲取文件信息.133 9.2.4文件的其他操作.134 9.3特殊文件的操作135 9.3.1目錄文件的操作.135 9.3.2鏈接文件的操作.139 9.3.3設備文件142 9.4小結142 9.5實踐與練習143 第10章文件的輸入/輸出操作.144 視頻講解:30分鐘 10.1文件I/O操作概述.145 10.1.1文件描述符簡介145 10.1.2數據流概述145 10.2基于文件描述符的I/O操作.146 10.2.1文件的打開與關閉146 10.2.2文件的讀寫操作148 10.2.3文件的定位149 10.3基于數據流的I/O操作.152 10.3.1文件的打開與關閉152 10.3.2字符輸入/輸出.153 10.3.3字符串輸入/輸出.156 10.3.4數據塊輸入/輸出.157 10.3.5格式化輸入/輸出.157 10.3.6操作讀寫位置的函數159 10.3.7C標準庫的I/O緩沖區.161 10.4小結163 10.5實踐與練習163 第11章信號及信號處理.164 視頻講解:23分鐘 11.1信號概述165 11.1.1在終端中查看常見的信號165 11.1.2信號處理165 11.2產生信號166 11.2.1kill()函數166 11.2.2raise()函數167 11.2.3alarm()函數167 11.3捕捉信號167 11.3.1signal()函數168 11.3.2sigaction()函數.170 11.4信號的阻塞171 11.4.1sigprocmask()函數.172 11.4.2sigsuspend()函數172 11.4.3sigpending()函數.172 11.5信號處理的安全問題174 11.6小結175 11.7實踐與練習175 第12章網絡編程176 視頻講解:30分鐘 12.1網絡編程的基本原理177 12.1.1計算機網絡.177 12.1.2TCP/IP協議178 12.1.3IP地址簡介178 12.1.4套接字編程原理.181 12.2TCP套接字編程186 12.3UDP套接字編程.189 12.3.1數據傳輸系統調用.190 12.3.2基于UDP協議的C/S機制的網絡通信的工 作原理.191 12.3.3基于UDP的簡單網絡通信實例.191 12.4原始套接字編程194 12.4.1原始套接字定義.195 12.4.2原始套接字系統調用.195 12.4.3原始套接字的發送與接收.196 12.4.4報文處理.196 12.5小結199 12.6實踐與練習199 第13章make編譯基礎200 視頻講解:1小時54分鐘 13.1通過實例認識make.201 13.1.1Makefile的導入.201 13.1.2make是如何工作的.205 13.1.3Makefile中使用變量.206 13.1.4讓make自動推導207 13.1.5清空目標文件的規則.208 13.2make概述.208 13.2.1Makefile中有什么.208 13.2.2Makefile的文件名.209 13.2.3包含其他Makefile文件209 13.2.4變量MAKEFILES.211 13.2.5變量MAKEFILE_LIST.211 13.2.6其他特殊變量212 13.2.7Makefile文件的重建.212 13.2.8重載另外一個Makefile.213 13.2.9make如何解析Makefile文件214 13.2.10總結215 13.3Makefile基本規則.215 13.3.1規則舉例216 13.3.2規則語法216 13.3.3依賴的類型217 13.3.4文件名使用通配符218 13.3.5目錄搜尋220 13.3.6Makefile偽目標.225 13.3.7強制目標(沒有命令或依賴的規則).227 13.3.8空目標文件228 13.3.9Makefile的特殊目標.228 13.3.10多目標230 13.3.11多規則目標231 13.3.12靜態模式231 13.3.13雙冒號規則234 13.3.14自動產生依賴234 13.3.15書寫命令236 13.4變量的基本操作241 13.4.1變量的基礎241 13.4.2變量中的變量242 13.4.3變量高級用法244 13.4.4追加變量值246 13.4.5override指示符246 13.4.6多行變量247 13.4.7環境變量247 13.4.8目標變量247 13.4.9模式變量248 13.5條件判斷248 13.5.1示例249 13.5.2語法249 13.6基本函數的使用251 13.6.1函數的調用語法251 13.6.2字符串處理函數252 13.6.3文件名操作函數.255 13.6.4foreach()函數257 13.6.5if()函數.258 13.6.6call()函數258 13.6.7origin()函數259 13.6.8shell()函數260 13.6.9控制make的函數260 13.7make的運行.261 13.7.1make的退出碼.261 13.7.2指定Makefile.261 13.7.3指定目標.261 13.7.4檢查規則.263 13.7.5make的參數.263 13.8隱含規則265 13.8.1使用隱含規則.266 13.8.2隱含規則一覽.267 13.8.3隱含規則使用的變量.268 13.8.4隱含規則鏈.269 13.8.5模式規則.270 13.8.6后綴規則.273 13.8.7隱含規則搜索算法.274 13.9make工具與函數庫.275 13.9.1函數庫文件的成員.275 13.9.2函數庫成員的隱含規則.276 13.9.3函數庫文件的后綴規則.276 13.9.4注意事項.276 13.10小結277 13.11實踐與練習277 第14章Linux系統下的C語言與數據庫278 視頻講解:13分鐘 14.1MySQL數據庫簡介279 14.2安裝和連接MySQL數據庫.279 14.2.1安裝MySQL數據庫.279 14.2.2啟動和關閉MySQL280 14.3連接操作MySQL282 14.3.1MySQL常用數據庫操作函數282 14.3.2連接MySQL數據.284 14.3.3查詢表記錄285 14.3.4插入表記錄286 14.3.5修改表記錄287 14.3.6刪除表記錄287 14.4Oracle數據庫簡介.288 14.5Oracle數據庫的安裝.289 14.5.1軟硬件要求289 14.5.2安裝Oracle11g數據庫.292 14.5.3創建監聽和數據庫293 14.6連接Oracle數據庫297 14.7小結299 14.8實踐與練習299 第15章集成開發環境.300 視頻講解:13分鐘 15.1Eclipse與CDT簡介.301 15.2安裝和配置Eclipse.302 15.2.1安裝Eclipse.302 15.2.2配置Eclipse的CDT.304 15.3使用Eclipse開發C代碼305 15.3.1編寫運行HelloWorld.305 15.3.2CDT的相關功能.307 15.3.3調試C/C++的項目307 15.4小結308 第3篇高級應用 第16章界面開發基礎310 視頻講解:23分鐘 16.1Linux常用桌面環境311 16.1.1面板介紹311 16.1.2桌面圖標介紹312 16.1.3桌面背景313 16.2glib庫介紹.314 16.2.1類型定義.314 16.2.2glib的宏.314 16.2.3內存管理.315 16.2.4字符串處理.316 16.2.5數據結構.318 16.3GObject對象介紹321 16.4圖形引擎Cairo介紹.322 16.5多媒體庫介紹323 16.5.1元件和插件.323 16.5.2襯墊324 16.5.3數據、緩沖區和事件.324 16.5.4緩沖區的分配.325 16.5.5MIME類型和屬性.325 16.6小結326 16.7實踐與練習326 第17章界面布局327 視頻講解:34分鐘 17.1窗體328 17.1.1初始化.328 17.1.2建立窗口.328 17.1.3結束應用程序.330 17.1.4回調函數.330 17.1.5其他窗體函數.332 17.2組裝盒構件333 17.2.1組裝盒的原理.334 17.2.2盒的細節.334 17.2.3組裝盒程序.335 17.2.4用表組裝.339 17.2.5表組裝程序.341 17.3容器343 17.3.1事件盒.343 17.3.2對齊構件.343 17.3.3固定容器.344 17.3.4布局容器.345 17.3.5框架346 17.3.6分欄窗口構件.348 17.3.7視角349 17.3.8滾動窗口349 17.3.9按鈕盒351 17.3.10工具欄353 17.3.11筆記本358 17.4小結362 17.5實踐與練習362 第18章界面構件開發.363 視頻講解:1小時3分鐘 18.1基本界面構件364 18.1.1按鈕構件364 18.1.2調整對象368 18.1.3范圍構件370 18.1.4標簽377 18.1.5箭頭380 18.1.6工具提示對象382 18.1.7進度條382 18.1.8對話框386 18.1.9標尺387 18.2雜項構件390 18.2.1狀態欄390 18.2.2文本輸入構件392 18.2.3微調按鈕394 18.2.4組合框400 18.2.5日歷402 18.2.6顏色選擇409 18.2.7文件選擇410 18.3RC文件411 18.4小結412 18.5實踐與練習412 第19章Glade設計程序界面413 視頻講解:23分鐘 19.1Glade簡介414 19.2構造圖形界面415 19.2.1添加窗體415 19.2.2添加容器421 19.2.3添加構件426 19.2.4設置構件屬性430 19.2.5添加事件和回調.431 19.3C語言代碼聯編.432 19.3.1GtkBuilder代碼連接基礎433 19.3.2GtkBuilder代碼連接實例.435 19.4小結437 19.5實踐與練習437 第4篇項目實戰 第20章MP3音樂播放器440 視頻講解:27分鐘 20.1GStreamer簡介441 20.2界面設計442 20.3代碼設計444 20.3.1建立工程文件.444 20.3.2主程序設計.445 20.3.3生成playbin對象.446 20.3.4打開文件450 20.3.5播放MP3.451 20.3.6暫停播放452 20.3.7停止播放452 20.3.8界面更新453 20.3.9播放控制454 20.4小結456 |
序: |