出版時(shí)間:2010-4 出版社:清華大學(xué)出版社 作者:楊樹青,王歡 編著 頁數(shù):388 字?jǐn)?shù):608000
Tag標(biāo)簽:無
前言
Linux是由UNⅨ發(fā)展而來,最初由一位芬蘭大學(xué)生開發(fā)和維護(hù),現(xiàn)在Linux已經(jīng)成為最為流行的免費(fèi)操作系統(tǒng)。Linux的獨(dú)特之處在于它的建立不受任何商品化軟件的版權(quán)制約,全世界都能免費(fèi)、自由地使用。世界各地有幾十萬計(jì)算機(jī)自愿者為這個(gè)充滿魅力的操作系統(tǒng)貢獻(xiàn)著自己的才能,從初學(xué)者到計(jì)算機(jī)專業(yè)人士,還有經(jīng)驗(yàn)豐富的黑客們,一直在不斷地改進(jìn)和維護(hù)著這個(gè)系統(tǒng)。許多大學(xué)與研究機(jī)構(gòu)、公司及家用PC機(jī)都在使用Linux。Linux年輕而富有朝氣,它從誕生到現(xiàn)在不過15年時(shí)間,但已經(jīng)確立了自己的地位并產(chǎn)生了廣泛的影響。C語言是國際上廣泛使用的計(jì)算機(jī)高級(jí)語言。C語言最初用于描述和實(shí)現(xiàn)13NIX系統(tǒng),后來逐漸被廣大程序員所接受,成為備受歡迎的編程語言。在其后的發(fā)展過程中,C語言不斷吸收計(jì)算機(jī)方面的新成果,使該語言逐漸完善起來。作為Linux系統(tǒng)的開發(fā)語言,C語言在Linux編程開發(fā)中扮演著重要的角色。Linux作為操作系統(tǒng),一個(gè)重要的功能就是要支持用戶編程。C語言作為當(dāng)前使用最廣泛的系統(tǒng)編程語言,具有多平臺(tái)性、移植性好的特點(diǎn),因此Linux與C很快形成了完美的結(jié)合,為用戶提供了一個(gè)強(qiáng)大的編程環(huán)境。本書正是從這樣的結(jié)合點(diǎn)出發(fā),介紹在Linux系統(tǒng)中使用C語言編程的有關(guān)知識(shí)。國內(nèi)Linux的發(fā)展方興未艾,由于國內(nèi)計(jì)算機(jī)教育體系等因素,Linux的發(fā)展已進(jìn)入瓶頸狀態(tài),很多Linux愛好者僅僅停留在Linux系統(tǒng)管理的層次,而更多的Linux系統(tǒng)管理員或者Windows程序員想要轉(zhuǎn)向做Linux的開發(fā)卻無從下手,除了Linux開發(fā)界面本身不是很友好之外,更重要的是苦于找不到合適的學(xué)習(xí)參考資料入門。在這種情況下,作者根據(jù)多年來的開發(fā)和教學(xué)經(jīng)驗(yàn)并融合大量的編程實(shí)例而著成此書。讀者通過對(duì)本書的學(xué)習(xí)能夠快速地學(xué)會(huì)Linux下的C語言編程,掌握其中的編程方法和技巧,并能從一開始就養(yǎng)成良好的編程習(xí)慣,從而幫助讀者對(duì)Linux環(huán)境下的編程知識(shí)實(shí)現(xiàn)入門和提高。本書主要針對(duì)具有一定C語言編程基礎(chǔ),但未在Linux系統(tǒng)中使用過C語言的讀者,著重講解在Linux系統(tǒng)中使用C語言編程的方法。
內(nèi)容概要
本書系統(tǒng)地介紹在Linux平臺(tái)下用C語言進(jìn)行程序開發(fā)的過程,通過列舉大量的程序?qū)嵗棺x者能夠很快掌握在Linux平臺(tái)下進(jìn)行C程序開發(fā)的方法和技巧,并具備開發(fā)大型應(yīng)用程序的能力。本書內(nèi)容翔實(shí),主要包括Linux平臺(tái)下C語言及其編程環(huán)境的介紹,C語言編譯器、調(diào)試工具和自動(dòng)維護(hù)工具的使用方法,進(jìn)程、文件的相關(guān)操作,輸入輸出操作和內(nèi)存管理,C語言網(wǎng)絡(luò)編程方法等。 本書是作者根據(jù)多年來的開發(fā)和教學(xué)經(jīng)驗(yàn)并融合大量的編程實(shí)例而著成的。讀者通過本書的學(xué)習(xí)能夠快速地學(xué)會(huì)Linux下的C語言編程,并能從一開始就養(yǎng)成良好的編程習(xí)慣,以便于讀者低起點(diǎn)、高效率地掌握Linux環(huán)境下的編程知識(shí)。 本書結(jié)構(gòu)合理、概念清晰、實(shí)例豐富,并具有很強(qiáng)的啟發(fā)性和實(shí)用性,適合有一定C語言基礎(chǔ),需要在Linux系統(tǒng)上編程的程序設(shè)計(jì)人員閱讀,也可作為本、??朴?jì)算機(jī)專業(yè)的教材或參考書,還可供廣大計(jì)算機(jī)愛好者學(xué)習(xí)C語言使用。
書籍目錄
第1章 C語言基礎(chǔ)和Linux系統(tǒng)概述 1.1 C語言基礎(chǔ) 1.2 Linux系統(tǒng)概述 1.3 本章小結(jié) 第2章 內(nèi)存管理 2.1 靜態(tài)內(nèi)存與動(dòng)態(tài)內(nèi)存 2.2 安全性問題 2.3 內(nèi)存管理操作 2.4 使用鏈表 2.5 內(nèi)存映像I/O 2.6 本章小結(jié) 第3章 vim與Emacs編輯器 3.1 vim簡介 3.2 Emacs簡介 3.3 Emacs的C模式 3.4 本章小結(jié) 第4章 gcc編譯器 4.1 gcc編譯器簡介 4.2 gcc編譯流程簡介 4.3 其他編譯調(diào)試工具 4.4 本章小結(jié) 第5章 調(diào)試工具gdb 5.1 gdb符號(hào)調(diào)試器簡介 5.2 gdb功能詳解及其應(yīng)用 5.3 gdb調(diào)試多線程程序 5.4 其他調(diào)試工具 5.5 本章小結(jié) 第6章 進(jìn)程控制 6.1 進(jìn)程的基本概念 6.2 進(jìn)程控制的相關(guān)函數(shù) 6.3 多個(gè)進(jìn)程間的關(guān)系 6.4 線程 6.5 本章小結(jié) 第7章 進(jìn)程間通信 7.1 進(jìn)程間通信簡介 7.2 共享內(nèi)存和信號(hào)量 7.3 管道通信 7.4 命名管道 7.5 消息隊(duì)列 7.6 本章小結(jié) 第8章 文件操作 8.1 文件系統(tǒng)簡介 8.2 基于文件描述符的I/O操作 8.3 文件的其他操作 8.4 特殊文件的操作 8.5 本章小結(jié) 第9章 輸入輸出——基于流的操作 9.1 流簡介 9.2 基于流的I/O操作 9.3 臨時(shí)文件 9.4 本章小結(jié) 第10章 信號(hào)及信號(hào)處理 10.1 信號(hào)及其使用簡介 10.2 信號(hào)操作的相關(guān)系統(tǒng)調(diào)用 10.3 信號(hào)處理的潛在危險(xiǎn) 10.4 本章小結(jié) 第11章 網(wǎng)絡(luò)編程 11.1 網(wǎng)絡(luò)編程基本原理 11.2 TCP套接口編程 11.3 UDP套接口編程 11.4 原始套接口編程 11.5 網(wǎng)絡(luò)編程實(shí)例 11.6 本章小結(jié) 第12章 底層終端編程 12.1 底層終端編程 12.2 偽終端 12.3 本章小結(jié) 第13章 使用make 13.1 makefile文件簡介 13.2 make書寫規(guī)則 13.3 使用命令 13.4 使用變量 13.5 使用條件判斷 13.6 使用函數(shù) 13.7 make的運(yùn)行 13.8 隱含規(guī)則 13.9 使用make更新函數(shù)庫文件 13.10 高級(jí)使用 13.11 庫的使用 13.12 make輔助開發(fā)工具 13.13 本章小結(jié)
章節(jié)摘錄
插圖:Linux系統(tǒng)的特點(diǎn)如下:◇ 是真正的多用戶、多任務(wù)、多平臺(tái)操作系統(tǒng)?!?提供具有內(nèi)置安全措施的分層的文件系統(tǒng),支持多達(dá)32種文件系統(tǒng)?!?提供Shell命令解釋程序和編程語言。◇ 提供強(qiáng)大的管理功能。◇ 具有內(nèi)核的編程接口。◇ 具有圖形用戶接口?!?具有大量有用的實(shí)用程序和通信、聯(lián)網(wǎng)工具?!?具有面向屏幕的編輯軟件?!?組成部分的源代碼是開放的,任何人都能修改和重新發(fā)布它?!?不僅可以運(yùn)行自由發(fā)布的應(yīng)用軟件,還可以運(yùn)行許多商業(yè)化的應(yīng)用軟件。Linux系統(tǒng)的主要功能如下。1.存儲(chǔ)管理Linux采取頁面式存儲(chǔ)管理機(jī)制,每個(gè)頁面的大小隨處理芯片而異。在Linux中,每一個(gè)進(jìn)程都有一個(gè)比實(shí)際物理空間大得多的進(jìn)程虛擬空間,每個(gè)進(jìn)程還保留一張頁表,用于將本進(jìn)程空間中的虛地址變換成物理地址,頁表還對(duì)物理頁的訪問權(quán)限做了規(guī)定,從而達(dá)到存儲(chǔ)保護(hù)的目的。Linux存儲(chǔ)空間的分配遵循的原則是不到有實(shí)際需要的時(shí)候不分配物理空間,這樣可以最大限度地利用物理存儲(chǔ)器。2.進(jìn)程管理在Linux中,進(jìn)程是資源分配的基本單位,所有資源都是以進(jìn)程為對(duì)象進(jìn)行分配的。在一個(gè)進(jìn)程的生命周期中,會(huì)用到許多系統(tǒng)資源,Linux的設(shè)計(jì)可以準(zhǔn)確描述進(jìn)程的狀態(tài)和資源的使用情況,以確保不出現(xiàn)某些進(jìn)程過度占用系統(tǒng)資源而導(dǎo)致另一些進(jìn)程無休止地等待的情況。Linux創(chuàng)建進(jìn)程的方法是采用Copy in write技術(shù),不復(fù)制父進(jìn)程的空間,只是復(fù)制父進(jìn)程的頁表,使父進(jìn)程和子進(jìn)程共享物理空間,并將這個(gè)共享空間的訪問權(quán)限置為只讀,這樣可以降低系統(tǒng)資源的開銷。
編輯推薦
《Linux環(huán)境下C編程指南(第2版)》:通過大量程序?qū)嵗榻BLinux平臺(tái)下進(jìn)C程序開發(fā)的方法和技巧。全面介紹C語言編譯器。調(diào)試工具和自動(dòng)維護(hù)工具的使用方法。詳細(xì)介紹進(jìn)程、文件的相關(guān)操作以及輸入/輸出操作和內(nèi)存管理。重點(diǎn)介紹C語言網(wǎng)絡(luò)編程基本原理和編程技術(shù)。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載