定 價(jià):99 元
叢書(shū)名:圖靈程序設(shè)計(jì)叢書(shū)·Linux/UNIX系列
- 作者:(英),馬修 ,|b|Matthew ,(N.),(英),斯通斯 ,|b|Stones ,(R.) 著 陳健 ,宋健建 譯
- 出版時(shí)間:2010/6/1
- ISBN:9787115228215
- 出 版 社:人民郵電出版社
- 中圖法分類:TP316.81
- 頁(yè)碼:642
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:大16開(kāi)
《Linux程序設(shè)計(jì)(第4版)》講述了Linux系統(tǒng)及其他IJNIX風(fēng)格的操作系統(tǒng)上的程序開(kāi)發(fā),主要內(nèi)容包括標(biāo)準(zhǔn)Linux c語(yǔ)言函數(shù)庫(kù)和由不同的Linux或UNIX標(biāo)準(zhǔn)指定的各種工具的使用方法,大多數(shù)標(biāo)準(zhǔn)Linux開(kāi)發(fā)工具的使用方法,通過(guò)DBM和MySQL數(shù)據(jù)庫(kù)系統(tǒng)存儲(chǔ)Linux中的數(shù)據(jù),為x視窗系統(tǒng)建立圖形化用戶界面等!禠inux程序設(shè)計(jì)(第4版)》通過(guò)先介紹程序設(shè)計(jì)理論,再以適當(dāng)?shù)睦雍颓逦慕忉寔?lái)闡明它的方式,幫助讀者迅速掌握相關(guān)的知識(shí)。
《Linux程序設(shè)計(jì)(第4版)》適合Linux的初學(xué)者及希望利用Linux進(jìn)行開(kāi)發(fā)的程序人員閱讀,也適合作為高等院校計(jì)算機(jī)相關(guān)專業(yè)師生的參考教材。
最負(fù)盛名的Linux程序設(shè)計(jì)圖書(shū),內(nèi)容全面深入,全球開(kāi)源社區(qū)集體智慧結(jié)晶。 時(shí)至今日,Linux系統(tǒng)已經(jīng)從一個(gè)個(gè)人作品發(fā)展為可以用于各種關(guān)鍵任務(wù)的成熟、高效和穩(wěn)定的操作系統(tǒng),因?yàn)榫邆淇缙脚_(tái)、開(kāi)源、支持眾多應(yīng)用軟件和網(wǎng)絡(luò)協(xié)議等優(yōu)點(diǎn),它得到了各大主流軟硬件廠商的支持,也成為廣大程序設(shè)計(jì)人員理想的開(kāi)發(fā)平臺(tái)! 禠inux程序設(shè)計(jì)(第4版)》是Linux程序設(shè)計(jì)領(lǐng)域的經(jīng)典名著,以簡(jiǎn)單易懂、內(nèi)容全面和示例豐富而廣受好評(píng)。中文版前兩版出版后。在國(guó)內(nèi)的Linux愛(ài)好者和程序員中引起了強(qiáng)烈反響。這一熱潮一直持續(xù)至今!禠inux程序設(shè)計(jì)(第4版)》是國(guó)內(nèi)讀者翹首以待的第4版,此次新版內(nèi)容組織更加嚴(yán)謹(jǐn),譯者更是細(xì)心雕琢,保留了這部權(quán)威著作的原汁原味! (duì)Ljnux所提供的功能全面而準(zhǔn)確的闡述,以及貫穿全書(shū)的示例程序體驗(yàn),使《Linux程序設(shè)計(jì)(第4版)》不僅成為初學(xué)者的最佳Linux程序設(shè)計(jì)指南。而且是中高級(jí)程序員不可或缺的參考書(shū)。
歡迎閱讀本書(shū)第4版,這是一本針對(duì)在Linux系統(tǒng)和其他UNIX風(fēng)格的操作系統(tǒng)上進(jìn)行程序開(kāi)發(fā)的易于使用的指南性讀物。
在本書(shū)中,我們的目標(biāo)是介紹對(duì)于IAnux程序員來(lái)說(shuō)非常重要的主題,這些主題的涵蓋面非常廣泛。書(shū)名中的“beginning”更多的是指書(shū)中的內(nèi)容而不是讀者的技能。我們對(duì)本書(shū)的內(nèi)容組織進(jìn)行了精心的安排,以幫助讀者更多地了解Linux所提供的功能,而不管讀者現(xiàn)有的經(jīng)驗(yàn)有多少。Linux程序設(shè)計(jì)是一個(gè)很大的領(lǐng)域,我們的目標(biāo)是對(duì)廣泛領(lǐng)域中的大量主題都進(jìn)行介紹,從而讓讀者在每個(gè)主題上都具各足夠的入門(mén)知識(shí)。讀者對(duì)象
如果你是一位程序員,希望利用Linux(或UNIX)提供給軟件開(kāi)發(fā)者的工具來(lái)加快程序開(kāi)發(fā)的進(jìn)度,盡量減少編程時(shí)間并讓你的程序充分利用Linux系統(tǒng)所提供的功能,那么本書(shū)將非常適合你。書(shū)中明確清晰的解釋和分步驟的實(shí)驗(yàn),將幫助你迅速提高編程能力和掌握所有的關(guān)鍵技術(shù)。
我們假設(shè)讀者具備一些c或C++語(yǔ)言的編程經(jīng)驗(yàn),這些經(jīng)驗(yàn)可能來(lái)自Windows系統(tǒng)或其他一些操作系統(tǒng)。但我們會(huì)盡量保持書(shū)中示例程序的簡(jiǎn)單,即便你不是一個(gè)C語(yǔ)言編程專家,也可以輕松地閱讀本書(shū)。如果存在需要直接比較Linux程序設(shè)計(jì)和C/C++程序設(shè)計(jì)的情況,我們都會(huì)在書(shū)中指出。
馬修(Neil Matthew)和斯通斯(Richard Stones),世界知名的Linux/UNIX專家,有數(shù)十年LjnuX/UNIX開(kāi)發(fā)經(jīng)驗(yàn)和從業(yè)經(jīng)歷。他們使用過(guò)幾乎所有LINIX版本。并精通C/C++、LISP、Fortran、PerI、Tcl和Prolog等各種語(yǔ)言。他們從事過(guò)各種軟件項(xiàng)目,從實(shí)時(shí)嵌入式系統(tǒng)到會(huì)計(jì)系統(tǒng)和零售信息系統(tǒng)。除本書(shū)外。他們還合著過(guò)PostgreSQL、MySQL一方面的圖書(shū)。
譯者簡(jiǎn)介:
陳健,畢業(yè)于南京大學(xué),1996年獲電子學(xué)學(xué)士,2002年獲計(jì)算機(jī)碩士,現(xiàn)工作于南京大學(xué)網(wǎng)絡(luò)信息中心。長(zhǎng)期從事軟件研發(fā)和教學(xué)工作,主要研究方向?yàn)榫W(wǎng)絡(luò)管理。
宋健建,畢業(yè)于南京大學(xué)計(jì)算機(jī)系,分別于1997年和2003年獲學(xué)士、碩士學(xué)位,從事軟件開(kāi)發(fā)多年。現(xiàn)任教于南京大學(xué)軟件學(xué)院,主要研究方向?yàn)長(zhǎng)inux和嵌入式系統(tǒng)軟件。
第1章 入門(mén)
1.1 LNIX、Linux和GNU簡(jiǎn)介
1.1.1 什么是IYNIX
1.1.2 什么是Linux
1.1.3 GNL,項(xiàng)目和自由軟件基金會(huì)
1.1.4 Linux發(fā)行版
1.2 Linux程序設(shè)計(jì).
1.2.1 Linux程序
1.2.2 文本編輯器
1.2.3 C語(yǔ)言編譯器
1.2.4 開(kāi)發(fā)系統(tǒng)導(dǎo)引
1.3 獲得幫助
1.4 小結(jié)
第2章 shell程序設(shè)計(jì)
2.1 為什么使用shell編程
2.2 一點(diǎn)哲學(xué)
2.3 什么是shell
2.4 管道和重定向
2.4.1 重定向輸出
2.4.2 重定向輸入
2.4.3 管道
2.5 作為程序設(shè)計(jì)語(yǔ)言的shell
2.5.1 交互式程序
2.5.2 創(chuàng)建腳本
2.5.3 把腳本設(shè)置為可執(zhí)行
2.6 shell的語(yǔ)法
2.6.1 變量
2.6.2 條件
2.6.3 控制結(jié)構(gòu)
2.6.4 函數(shù)
2.6.5 命令
2.6.6 命令的執(zhí)行
2.6.7 1aere文檔
2.6.8 調(diào)試腳本程序
2.7 邁向圖形化:dialog工具
2.8 綜合應(yīng)用
2.8.1 需求
2.8.2 設(shè)計(jì)
2.8.3 應(yīng)用程序的說(shuō)明
2.9 小結(jié)
第3章 文件操作.
3.1 Linux文件結(jié)構(gòu)
3.1.1 目錄
3.1.2 文件和設(shè)備
3.2 系統(tǒng)調(diào)用和設(shè)備驅(qū)動(dòng)程序
3.3 庫(kù)函數(shù)
3.4 底層文件訪問(wèn)
3.4.1 write系統(tǒng)調(diào)用
3.4.2 read系統(tǒng)調(diào)用
3.4.3 open系統(tǒng)調(diào)用
3.4.4 訪問(wèn)權(quán)限的初始值
3.4.5 其他與文件管理有關(guān)的系統(tǒng)調(diào)用
3.5 標(biāo)準(zhǔn)I/O庫(kù)
3.5.1 fopen函數(shù)
3.5.2 fread函數(shù)
3.5.3 fwrite函數(shù)
3.5.4 fclose函數(shù)
3.5.5 f£1ush函數(shù)
3.5.6 fseek函數(shù)
3.5.7 fgetc、getc和getchar函數(shù)
3.5.8 fputc、putc和putchar函數(shù)
3.5.9 fgets和gets函數(shù)
3.6 格式化輸入和輸出
3.6.1 printf、fprintf和sprin七函數(shù)
3.6.2 scanf、fscanf和sscanf函數(shù)
3.6.3 其他流函數(shù)
3.6.4 文件流錯(cuò)誤
3.6.5 文件流和文件描述符
3.7 文件和目錄的維護(hù)
3.7.1 chIrrod系統(tǒng)調(diào)用
3.7.2 chown系統(tǒng)調(diào)用
3.7.3 unlink、1ink和symlink系統(tǒng)調(diào)用
3.7.4 mkdJ.r和rmdir系統(tǒng)調(diào)用
3.7.5 chdir系統(tǒng)調(diào)用和getcwd函數(shù)
3.8 掃描目錄
3.8.1 opendir函數(shù)
3.8.2 readdir函數(shù)
3.8.3 elldir函數(shù)
3.8.4 see]kdir函數(shù)
3.8.5 closedir函數(shù)
3.9 錯(cuò)誤處理
3.9.1 strerror函數(shù)
3.9.2 perror函數(shù)
3.10 proc文件系統(tǒng)
3.11 高級(jí)主題:fcntl和mmap
3.11.1 fcntl系統(tǒng)調(diào)用
3.11.2 map函數(shù)
3.12 小結(jié)
第4章 Linux環(huán)境
4.1 程序參數(shù)
4.1.1 qetopt
4.1.2 getooptlong
4.2 環(huán)境變量
4.2.1 環(huán)境變量的用途
4.2.2 environ變量
4.3 時(shí)間和日期
4.4 臨時(shí)文件
4.5 用戶信息
4.6 主機(jī)信息
4.7 日志
4.8 資源和限制
4.9 小結(jié)
第5章 終端
5.1 對(duì)終端進(jìn)行讀寫(xiě)
5.2 與終端進(jìn)行對(duì)話
5.3 終端驅(qū)動(dòng)程序和通用終端接口
5.3.1 概述
5.3.2 硬件模型
5.4 temios結(jié)構(gòu)
5.4.1 輸入模式
5.4.2 輸出模式
5.4.3 控制模式
5.4.4 本地模式
5.4.5 特殊控制字符
5.4.6 終端速度
5.4.7 其他函數(shù)
5.5 終端的輸出
5.5.1 終端的類型
5.5.2 識(shí)別終端類型
5.5.3 使用teminfo功能標(biāo)志
5.6 檢測(cè)擊鍵動(dòng)作
5.7 虛擬控制臺(tái)
5.8 偽終端
5.9 小結(jié)
第6章 使用curses函數(shù)庫(kù)管理基于文本的屏幕
6.1 用curses函數(shù)庫(kù)進(jìn)行編譯
6.2 curses術(shù)語(yǔ)和概念
6.3 屏幕
6.3.1 輸出到屏幕
6.3.2 從屏幕讀取
6.3.3 清除屏幕
6.3.4 移動(dòng)光標(biāo)
6.3.5 字符屬性
6.4 鍵盤(pán)
6.4.1 鍵盤(pán)模式
6.4.2 鍵盤(pán)輸入
6.5 窗口
6.5.1 wINDOW結(jié)構(gòu)
6.5.2 通用函數(shù)
6.5.3 移動(dòng)和更新窗口
6.5.4 優(yōu)化屏幕刷新
6.6 子窗口
6.7 keypad模式
6.8 彩色顯示
6.9 pad
6.10 CD唱片應(yīng)用程序
6.10.1 新CD唱片應(yīng)用程序的開(kāi)始部分
6.10.2 main函數(shù)
6.10.3 建立菜單
6.10.4 操作數(shù)據(jù)庫(kù)文件
6.10.5 查詢CD數(shù)據(jù)庫(kù)
6.11 小結(jié)
第7章 數(shù)據(jù)管理
7.1 內(nèi)存管理
7.1.1 簡(jiǎn)單的內(nèi)存分配
7.1.2 分配大量的內(nèi)存
7.1.3 濫用內(nèi)存
7.1.4 空指針
7.1.5 釋放內(nèi)存
7.1.6 其他內(nèi)存分配函數(shù)
7.2 文件鎖定
7.2.1 創(chuàng)建鎖文件
7.2.2 區(qū)域鎖定
7.2.3 鎖定狀態(tài)下的讀寫(xiě)操作
7.2.4 文件鎖的競(jìng)爭(zhēng)
7.2.5 其他鎖命令
7.2.6 死鎖
7.3 數(shù)據(jù)庫(kù)
7.3.1 dbm數(shù)據(jù)庫(kù)
7.3.2 dbm例程
7.3.3 d.bm訪問(wèn)函數(shù)
7.3.4 其他dbm函數(shù)
7.4 CD唱片應(yīng)用程序
7.4.1 更新設(shè)計(jì)
7.4.2 使用dbm數(shù)據(jù)庫(kù)的CD唱片應(yīng)用程序
7.5 小結(jié)
第8章 MySQL
8.1 安裝
8.1.1 MySQL軟件包
8.1.2 安裝后的配置
8.1.3 安裝后的故障修復(fù)
8.2 MySQL管理
8.2.1 命令
8.2.2 創(chuàng)建用戶并賦予權(quán)限
8.2.3 密碼
8.2.4 創(chuàng)建數(shù)據(jù)庫(kù)
8.2.5 數(shù)據(jù)類型
8.2.6 創(chuàng)建表
8.2.7 圖形化工具
8.3 使用C語(yǔ)言訪問(wèn)。MySQL數(shù)據(jù)
8.3.1 連接例程
8.3.2 錯(cuò)誤處理
8.3.3 執(zhí)行SQL語(yǔ)句
8.3.4 更多的函數(shù)
8.4 CD數(shù)據(jù)庫(kù)應(yīng)用程序
8.4.1 創(chuàng)建表
8.4.2 添加數(shù)據(jù)
8.4.3 使用C語(yǔ)言訪問(wèn)數(shù)據(jù)
8.5 小結(jié)
第9章 開(kāi)發(fā)工具
9.1 多個(gè)源文件帶來(lái)的問(wèn)題
9.2 make命令和makefile文件
9.2.1 mekefile的語(yǔ)法
9.2.2 make命令的選項(xiàng)和參數(shù)
9.2.3 makefile文件中的注釋
9.2.4 mekefile文件中的宏
9.2.5 多個(gè)目標(biāo)
9.2.6 內(nèi)置規(guī)則
9.2.7 后綴和模式規(guī)則
9.2.8 用make管理函數(shù)庫(kù)
9.2.9 高級(jí)主題:makefile文件和子目錄
9.2.1 0GNUmake和qcc
9.3 源代碼控制
9.3.1 RCS
9.3.2 SCCS
9.3.3 RCS和SCCS的比較
9.3.4 CVS
9.3.5 CVS的前端程序
9.3.6 SubvcrsiOn
9.4 編寫(xiě)手冊(cè)頁(yè)
9.5 發(fā)行軟件
9.5.1 pach程序
9.5.2 其他軟件發(fā)行工具
9.6 RPM軟件包
9.6.1 使用RPM軟件包文件
9.6.2 安裝RPM軟件包
9.6.3 創(chuàng)建RPM軟件包
9.7 其他軟件包格式
9.8 開(kāi)發(fā)環(huán)境
9.8.1 KDevelop
9.8.2 其他開(kāi)發(fā)環(huán)境
9.9 小結(jié)
第10章 調(diào)試
10.1 錯(cuò)誤類型
10.2 常用調(diào)試技巧
10.2.1 有漏洞的程序
10.2.2 代碼檢查
10.2.3 取樣法
10.2.4 程序的受控執(zhí)行
10.3 使用gdb進(jìn)行調(diào)試
10.3.1 啟動(dòng)gdb
10.3.2 運(yùn)行一個(gè)程序
10.3.3 棧跟蹤
10.3.4 檢查變量
10.3.5 列出程序源代碼
10.3.6 設(shè)置斷點(diǎn)
10.3.7 用調(diào)試器打補(bǔ)丁
10.3.8 深入學(xué)習(xí)gdb
10.4 其他調(diào)試工具
10.4.1 lint清理程序中的“垃圾”
10.4.2 函數(shù)調(diào)用工具
10.4.3 用prof/gprof產(chǎn)生執(zhí)行存檔
10.5 斷言
10.6 內(nèi)存調(diào)試
10.6.1 ElectnicFence函數(shù)庫(kù)
10.6.2 valgrind
10.7 小結(jié)
第11章 進(jìn)程和信號(hào)
11.1 什么是進(jìn)程
11.2 進(jìn)程的結(jié)構(gòu)
11.2.1 進(jìn)程表
11.2.2 查看進(jìn)程
11.2.3 系統(tǒng)進(jìn)程
11.2.4 進(jìn)程調(diào)度
11.3 啟動(dòng)新進(jìn)程
11.3.1 等待一個(gè)進(jìn)程
11.3.2 僵尸進(jìn)程
11.3.3 輸入和輸出重定向
11.3.4 線程
11.4 信號(hào)
11.4.1 發(fā)送信號(hào)
11.4.2 信號(hào)集
11.5 小結(jié)
第12章 POSlX線程
12.1 什么是線程
12.2 線程的優(yōu)點(diǎn)和缺點(diǎn)
12.3 第一個(gè)線程程序
12.4 同時(shí)執(zhí)行
12.5 同步
12.5.1 用信號(hào)量進(jìn)行同步
12.5.2 用互斥量進(jìn)行同步
……
第13章 進(jìn)程音通信:管道
第14章 信號(hào)量、共享內(nèi)存和消息隊(duì)列
第15章 套接字
第16章 用GTK+進(jìn)行+GNOME編程
第17章 用Qt進(jìn)行KDE編程
第18章 Linux標(biāo)準(zhǔn)
我們?cè)诒緯?shū)的開(kāi)始剛剛介紹了用c語(yǔ)言進(jìn)行Linux程序設(shè)計(jì),現(xiàn)在卻要調(diào)轉(zhuǎn)方向?qū)W習(xí)編寫(xiě)shell程序,這是為什么?在其他的一些操作系統(tǒng)中,命令行界面只是對(duì)圖形化界面的一個(gè)補(bǔ)充。但對(duì)于Linux而言,去并非如此。作為L(zhǎng)inux靈感來(lái)源的UNIX系統(tǒng)最初根本就沒(méi)有圖形化界面,所有的任務(wù)都是通過(guò)命令行來(lái)完成的。因此,UNIX的命令行系統(tǒng)得到了很大的發(fā)展,并且成為一個(gè)功能強(qiáng)大的系統(tǒng)。LInux系統(tǒng)沿襲了這一特點(diǎn),許多強(qiáng)大的功能都可以從shell中輕松實(shí)現(xiàn)。因?yàn)閟hell對(duì)Linux是如此的重要,并且對(duì)自動(dòng)化簡(jiǎn)單的任務(wù)非常有用,所以我們認(rèn)為應(yīng)該盡早介紹shell程序設(shè)計(jì)。
在本章中,我們將通過(guò)一些交互性(基于屏幕)的例子來(lái)向讀者展示編寫(xiě)shell程序時(shí)要用到的語(yǔ)法、結(jié)構(gòu)和命令。這些內(nèi)容將成為對(duì)shell主要特性及其效果的一個(gè)很有用的概要介紹。同時(shí),我們也順便介紹兩個(gè)在shell中經(jīng)常用到的特別有用的命令行工具:grep和find。在介紹grep時(shí),我們還將介紹正則表達(dá)式的基礎(chǔ)知識(shí),它在Linux的工具和程序設(shè)計(jì)語(yǔ)言(如Perl、Ruby和PHP)中都有應(yīng)用。在本章的最后,你將學(xué)習(xí)如何編寫(xiě)一個(gè)真正的腳本程序,本書(shū)的后續(xù)章節(jié)里將用C語(yǔ)言對(duì)它進(jìn)行重寫(xiě)和擴(kuò)充。