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