出版時(shí)間:2005-7 出版社:中國電力出版社 作者:羅賓斯 頁數(shù):505 字?jǐn)?shù):807000
Tag標(biāo)簽:無
內(nèi)容概要
編寫應(yīng)用軟件,特別是那些比較重要的軟件,毫無疑問要涉及到系統(tǒng)調(diào)用。在UNIX/Linux環(huán)境下編程更是如此。要想編寫優(yōu)秀的軟件,就必須熟悉這些系統(tǒng)調(diào)用的方方面面。通過閱讀這本書,你能夠快速地掌握這些重要技術(shù),以構(gòu)建嚴(yán)謹(jǐn)?shù)腖inux軟件。全書主要分為三大部分:第一部分討論了基本的編程問題,包括Linux編程環(huán)境、基本的文件和進(jìn)程管理與操作、內(nèi)存操作,還介紹了一些基本的庫接口。第二部分比較深入地討論了上面這些概念,如進(jìn)程間通信、信號(hào)、權(quán)限檢查;此外這部分還介紹了一些擴(kuò)展接口;接著討論了多語言問題;最后介紹了一些高級(jí)專題。第三部分介紹了程序設(shè)計(jì)的一個(gè)重要環(huán)節(jié)即調(diào)試。本書結(jié)構(gòu)合理、概念清晰、實(shí)例豐富,并具有很強(qiáng)的啟發(fā)性和實(shí)用性。
作者簡介
ARNOLD ROBBINS是一位專業(yè)程序號(hào)和教授,同時(shí)也是《UNIX in a Nutshell》、《Learning the Korn Shell》和《Effective awk Programming》等書的作者。另外,他還是一名長期的GNU Project的志愿者,目前負(fù)責(zé)維護(hù)gawk。從1980年開始,Robbins就開始使用C、C++、UNIX和GNU/Linux
書籍目錄
譯者序前 言第1部分 文件與用戶 第1章 引言 3 1.1 Linux/Unix文件模型 3 1.2 Linux/Unix進(jìn)程模型 7 1.3 標(biāo)準(zhǔn)C與原始C 9 1.4 為什么GNU程序更好? 10 1.5 回顧可移植性 13 1.6 推薦讀物 14 1.7 小結(jié) 15 練習(xí) 15 第2章 參數(shù)、選項(xiàng)和環(huán)境 17 2.1 選項(xiàng)和參數(shù)約定 17 2.2 基本的命名行處理技術(shù) 20 2.3 選項(xiàng)解析:getopt()和getopt_long()函數(shù) 21 2.4 環(huán)境 29 2.5 小結(jié) 36 練習(xí) 37 第3章 用戶級(jí)內(nèi)存管理 39 3.1 Linux/Unix地址空間 39 3.2 內(nèi)存分配 42 3.3 小結(jié) 60 練習(xí) 60 第4章 文件和文件I/O 63 4.1 介紹Linux/Unix I/O模型 63 4.2 介紹基本的程序結(jié)構(gòu) 64 4.3 確定出了什么問題 65 4.4 輸入與輸出 70 4.5 隨機(jī)訪問:在文件內(nèi)部移動(dòng)讀寫位置 78 4.6 創(chuàng)建文件 81 4.7 強(qiáng)迫數(shù)據(jù)存到磁盤上 86 4.8 設(shè)置文件長度 87 4.9 小結(jié) 88 練習(xí) 88 第5章 目錄和文件元數(shù)據(jù) 91 5.1 仔細(xì)思考目錄的內(nèi)容 91 5.2 創(chuàng)建和刪除目錄 100 5.3 讀取目錄 102 5.4 獲取文件相關(guān)信息 107 5.5 修改所有權(quán)、權(quán)限和修改時(shí)間 119 5.6 小結(jié) 125 練習(xí) 125 第6章 通用庫接口——第一部分 127 6.1 時(shí)間和日期 127 6.2 排序和搜索函數(shù) 138 6.3 用戶名和組名 150 6.4 終端:isatty() 154 6.5 推薦讀物 155 6.6 小結(jié) 155 練習(xí) 156 第7章 綜合應(yīng)用:ls 159 7.1 V7 ls命令選項(xiàng) 159 7.2 V7 ls命令的源代碼 160 7.3 小結(jié) 173 練習(xí) 173 第8章 文件系統(tǒng)和目錄遍歷 175 8.1 安裝和卸載文件系統(tǒng) 175 8.2 用于文件系統(tǒng)管理的文件 182 8.3 獲得每個(gè)文件系統(tǒng)的信息 187 8.4 在文件層次結(jié)構(gòu)中移動(dòng) 197 8.5 在文件樹中移動(dòng):GNU du 206 8.6 改變根目錄:chroot() 212 8.7 小結(jié) 213 練習(xí) 214第2部分 進(jìn)程、IPC和國際化 第9章 進(jìn)程管理和管道 217 9.1 進(jìn)程創(chuàng)建和管理 217 9.2 進(jìn)程組 237 9.3 基本的進(jìn)程間通信:管道和FIFO 239 9.4 文件描述符管理 243 9.5 例子:gawk中的雙向管道 255 9.6 推薦讀物 258 9.7 小結(jié) 259 練習(xí) 260 第10章 信號(hào) 263 10.1 引言 263 10.2 信號(hào)處理 264 10.3 標(biāo)準(zhǔn)C信號(hào):signal()和raise()函數(shù) 264 10.4 運(yùn)轉(zhuǎn)中的信號(hào)處理器 268 10.5 System V版本3的信號(hào)API:sigset()等函數(shù) 277 10.6 POSIX信號(hào) 279 10.7 進(jìn)程間通信信號(hào) 287 10.8 一些重要的專用信號(hào) 290 10.9 橫跨fork()和exec()函數(shù)的信號(hào) 303 10.10 小結(jié) 303 練習(xí) 305 第11章 權(quán)限、用戶ID號(hào)及組ID號(hào) 307 11.1 權(quán)限檢查 307 11.2 獲取用戶ID和組ID 310 11.3 核準(zhǔn)作為真實(shí)用戶:access()函數(shù) 312 11.4 核準(zhǔn)作為有效用戶:euidaccess()函數(shù)(GLIBC) 313 11.5 設(shè)置目錄的額外權(quán)限標(biāo)志位 314 11.6 設(shè)置真實(shí)ID和有效ID 316 11.7 處理三種ID:getresuid()和setresuid()(Linux) 320 11.8 穿越安全雷區(qū):setuid root 321 11.9 推薦讀物 322 11.10 小結(jié) 322 練習(xí) 323 第12章 通用庫接口——第二部分 325 12.1 斷言語句:assert()宏 325 12.2 底層內(nèi)存操作:memXXX()函數(shù) 328 12.3 臨時(shí)文件 332 12.4 自殺:abort()函數(shù) 339 12.5 非局部轉(zhuǎn)移 339 12.6 偽隨機(jī)數(shù) 346 12.7 元字符擴(kuò)展 351 12.8 正則表達(dá)式 360 12.9 推薦讀物 366 12.10 小結(jié) 367 練習(xí) 368 第13章 國際化和本地化 371 13.1 引言 371 13.2 區(qū)域設(shè)置和C語言庫 372 13.3 程序消息的動(dòng)態(tài)翻譯 387 13.4 請(qǐng)把它拼寫出來,好嗎? 399 13.5 推薦讀物 401 13.6 小結(jié) 401 練習(xí) 402 第14章 擴(kuò)展接口 403 14.1 分配對(duì)齊的內(nèi)存:posix_memalign()和memalign()函數(shù) 403 14.2 文件鎖定 404 14.3 更精確的時(shí)間 413 14.4 使用二叉樹進(jìn)行高級(jí)搜索 419 14.5 小結(jié) 428 練習(xí) 428第3部分 調(diào)試和最終的項(xiàng)目 第15章 調(diào)試 433 15.1 首要問題 434 15.2 為調(diào)試而編譯 434 15.3 GDB基礎(chǔ) 434 15.4 為調(diào)試而編程 440 15.5 調(diào)試工具 462 15.6 軟件測(cè)試 482 15.7 調(diào)試規(guī)則 483 15.8 推薦讀物 485 15.9 小結(jié) 485 練習(xí) 486 第16章 綜合前面所有主題的工程 489 16.1 工程描述 489 16.2 推薦讀物 491第4部分 附錄 附錄A 十年學(xué)會(huì)編程 495 為何人人都這么著急? 495 十年學(xué)會(huì)編程 496 參考文獻(xiàn) 497 答案 498 腳注 498附錄B Caldera原始UNIX許可證 499附靈C GNU通用公共許可證 501 序言 501 復(fù)制、發(fā)布和修改的條款和條件 502 沒有擔(dān)保 504 條款和條件的結(jié)束 504 如何將這些條款運(yùn)用于你的新程序 504 應(yīng)用示例 505
媒體關(guān)注與評(píng)論
這是一本卓越的介紹Linux編程的書。Arnold采用了非常有效的方法來展示富有經(jīng)驗(yàn)的程序員是如何使用Linux編程接口的,選題精辟,解釋透徹。特別是其中有關(guān)國際化的內(nèi)容很值得一看,強(qiáng)烈推薦! —— Jim Meyering,GNU Coreutils的合作開發(fā)者和維護(hù)者
編輯推薦
想學(xué)習(xí)編程?想從Windows過渡到Linux?曾經(jīng)進(jìn)行過Linux開發(fā),但希望進(jìn)一步探索系統(tǒng)調(diào)用接口?不管是哪種情況,這本書都能夠快速和直接地幫助你掌握這些重要技術(shù),以構(gòu)建嚴(yán)謹(jǐn)?shù)腖inux軟件?! ≡摃ㄟ^展示和解釋優(yōu)良的實(shí)例程序來介紹Linux編程,這可能是最有效的方式。通過引用V7UNIX和GNU中的源代碼,ArnoldRobbins著重介紹了基礎(chǔ)的系統(tǒng)調(diào)用API,這些API在任何重要程序中均處于核心地位。Robbins還循序漸進(jìn)地介紹了許多高水平的編程準(zhǔn)則和“內(nèi)幕’’技術(shù)。與此同時(shí),他還仔細(xì)地陳述了許多實(shí)際性的問題,如性能、可移植性和健壯性。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
實(shí)戰(zhàn)Linux編程精髓 PDF格式下載