Unix高級(jí)環(huán)境編程(3版CN).pdf

Unix高級(jí)環(huán)境編程(3版CN)?


內(nèi)容簡(jiǎn)介 · · · · · ·

《UNIX環(huán)境高級(jí)編程(第3版)》是被譽(yù)為UNIX編程“圣經(jīng)”的Advanced Programming in the UNIX Environment一書(shū)的第3版。在本書(shū)第2版出版后的8年中,UNIX行業(yè)發(fā)生了巨大的變化,特別是影響UNIX編程接口的有關(guān)標(biāo)準(zhǔn)變化很大。本書(shū)在保持前一版風(fēng)格的基礎(chǔ)上,根據(jù)最新的標(biāo)準(zhǔn)對(duì)內(nèi)容進(jìn)行了修訂和增補(bǔ),反映了最新的技術(shù)發(fā)展。書(shū)中除了介紹UNIX文件和目錄、標(biāo)準(zhǔn)I/O庫(kù)、系統(tǒng)數(shù)據(jù)文件和信息、進(jìn)程環(huán)境、進(jìn)程控制、進(jìn)程關(guān)系、信號(hào)、線程、線程控制、守護(hù)進(jìn)程、各種I/O、進(jìn)程間通信、網(wǎng)絡(luò)IPC、偽終端等方面的內(nèi)容,還在此基礎(chǔ)上介紹了眾多應(yīng)用實(shí)例,包括如何創(chuàng)建數(shù)據(jù)庫(kù)函數(shù)庫(kù)以及如何與網(wǎng)絡(luò)打印機(jī)通信等。此外,還在附錄中給出了函數(shù)原型和部分習(xí)題的答案。

《UNIX環(huán)境高級(jí)編程(第3版)》內(nèi)容權(quán)威,概念清晰,闡述精辟,對(duì)于所有層次UNIX/Linux程序員都是一本不可或缺的參考書(shū)。

適讀人群 :所有層次UNIX/Linux程序員

20多年來(lái),嚴(yán)謹(jǐn)?shù)腃程序員都是依靠一本書(shū)來(lái)深入了解驅(qū)動(dòng)UNIX和Linux內(nèi)核的編程接口的實(shí)用知識(shí)的,這本書(shū)就是W. Richard Stevens所著的《UNIX高級(jí)環(huán)境編程》?,F(xiàn)在,Stevens的同事Steve Rago徹底更新了這本經(jīng)典著作。新的第3版支持當(dāng)今領(lǐng)先的系統(tǒng)平臺(tái),反映了最新技術(shù)進(jìn)展和最佳實(shí)踐,并且符合最新的Single UNIX Specification第4版(SUSv4)。

Rago保留了使本書(shū)前版成為經(jīng)典之作的精髓和方法。他在Stevens原著的基礎(chǔ)上,從基礎(chǔ)的文件、目錄和進(jìn)程講起,并給諸如信號(hào)處理和終端I/O之類的先進(jìn)技術(shù)保留較大的篇幅。他還深入討論了線程和多線程編程、使用套接字接口驅(qū)動(dòng)進(jìn)程間通信(IPC)等方面的內(nèi)容。

這一版涵蓋了70多個(gè)最新版POSIX.1標(biāo)準(zhǔn)的新增接口,包括POSIX異步I/O、旋轉(zhuǎn)鎖、屏障(barrier)和POSIX信號(hào)量。此外,這一版刪除了許多過(guò)時(shí)的接口,保留了一些廣泛使用的接口。書(shū)中幾乎所有實(shí)例都已經(jīng)在目前最主流的4個(gè)平臺(tái)上測(cè)試過(guò),包括Solaris 10、Mac OS X 10.6.8(Darwin 10.8.0)、FressBSD 8.0、Ubuntu 12.04(基于Linux 3.2內(nèi)核)。

與前兩版一樣,讀者仍可以通過(guò)實(shí)例學(xué)習(xí),這些實(shí)例包括了1萬(wàn)多行可下載的ISO C源代碼,書(shū)中通過(guò)簡(jiǎn)明但完整的程序闡述了400多個(gè)系統(tǒng)調(diào)用和函數(shù),清楚地說(shuō)明它們的用法、參數(shù)和返回值。為了使讀者能融會(huì)貫通,書(shū)中還提供了幾個(gè)貫穿整章的案例,每個(gè)案例都根據(jù)現(xiàn)在的技術(shù)環(huán)境進(jìn)行了全面更新。

《UNIX環(huán)境高級(jí)編程(第3版)》幫助了幾代程序員寫出強(qiáng)大、高性能、可靠的代碼。第3版根據(jù)當(dāng)今主流系統(tǒng)進(jìn)行更新,更具實(shí)用價(jià)值。

精彩書(shū)評(píng):

本書(shū)第1版連同Stevens所著的系列網(wǎng)絡(luò)技術(shù)書(shū)籍,被公認(rèn)為優(yōu)秀的、匠心獨(dú)具的名著,成為極其暢銷的作品……總之,這是一本彌足珍貴的經(jīng)典著作的更新版。

——Dennis Ritchie,圖靈獎(jiǎng)得主,UNIX操作系統(tǒng)和C語(yǔ)言之父

對(duì)任何一個(gè)嚴(yán)謹(jǐn)?shù)?、專業(yè)的UNIX系統(tǒng)程序員而言,本書(shū)都是不可或缺的權(quán)威參考書(shū)。Rago更新和擴(kuò)展了Stevens的經(jīng)典著作,并保持了原書(shū)的風(fēng)貌。書(shū)中利用清晰的實(shí)例演示了API的使用過(guò)程,還提到了許多在不同UNIX系統(tǒng)實(shí)現(xiàn)上編程時(shí)需要注意的陷阱,并指出如何使用相關(guān)的標(biāo)準(zhǔn)(如POSIX 1003.1 2004版和Single UNIX Specification第3版)來(lái)避免這些錯(cuò)誤。

——Andrew Josey, The Open Group標(biāo)準(zhǔn)部門主管,POSIX 1003.1標(biāo)準(zhǔn)工作組主席

絕對(duì)的UNIX編程經(jīng)典之一。

——Eric S. Raymond,《UNIX編程藝術(shù)》作者

Stephen Rago的更新版本對(duì)于使用眾多UNIX及相關(guān)操作系統(tǒng)環(huán)境的廣大專業(yè)用戶來(lái)說(shuō)是一個(gè)遲來(lái)的喜訊。這一版不僅刪除了過(guò)時(shí)的接口,吸納了較新的開(kāi)發(fā)接口,還根據(jù)UNIX及類UNIX操作系統(tǒng)環(huán)境的幾種主流實(shí)現(xiàn)發(fā)布的新版本全面更新了所有主題、實(shí)例和應(yīng)用的背景。難能可貴的是,這一版本還保持了經(jīng)典的第1版的風(fēng)格和品位。

——Mukesh Kacker,Pronto Networks公司聯(lián)合創(chuàng)始人和前任CTO

本書(shū)對(duì)于任何在UNIX系統(tǒng)上編寫程序的開(kāi)發(fā)人員來(lái)說(shuō)都是非常重要的參考書(shū)。當(dāng)我想要了解或者重新回顧各種系統(tǒng)接口時(shí),這本書(shū)是首選的求助工具。Stephen Rago成功地修訂了本書(shū),使其與新的操作系統(tǒng)(如GNU/Linux和蘋果的OS X)相容,并保持了第1版易讀和實(shí)用的特質(zhì)。它將永遠(yuǎn)擺放在我桌上隨手可及的位置。

——Benjamin Kuperman博士,斯沃斯莫爾學(xué)院

這是每一位嚴(yán)謹(jǐn)?shù)腢NIX C程序員必備的書(shū)籍。它深入、全面、清晰的解釋是無(wú)可匹敵的。

——UniForum Monthly

從W. Richard Stevens的這本書(shū)中可以找到更多易于理解的、詳盡的UNIX系統(tǒng)內(nèi)部細(xì)節(jié)。這本書(shū)包含了大量實(shí)際的例子,對(duì)系統(tǒng)編程工作非常有益。

——RS/Magazine

作者簡(jiǎn)介? · · · · · ·

作者介紹

W. Richard Stevens,國(guó)際知名的UNIX和網(wǎng)絡(luò)專家,備受贊譽(yù)的技術(shù)作家。生前著有多部經(jīng)典的傳世之作,包括《UNIX網(wǎng)絡(luò)編程》(兩卷本)、《TCP/IP詳解》(三卷本)和本書(shū)第1版。

Stephen A. Rago,資深UNIX程序員,目前任NEC美國(guó)實(shí)驗(yàn)室存儲(chǔ)系統(tǒng)集團(tuán)研究員。之前是貝爾實(shí)驗(yàn)室的UNIX系統(tǒng)V版本4的開(kāi)發(fā)人員之一。著有《UNIX系統(tǒng)V網(wǎng)絡(luò)編程》,并曾擔(dān)任本書(shū)第1版的技術(shù)審校和第2版的共同作者。

譯者介紹

戚正偉,博士,上海交通大學(xué)軟件學(xué)院副教授,微軟亞洲研究院(2008)和美國(guó)CMU大學(xué)(2011-2012)訪問(wèn)學(xué)者。研究方向?yàn)橄到y(tǒng)軟件和程序分析,著有《New Blue Pill深入理解硬件虛擬機(jī)》和《嵌入式GIS開(kāi)發(fā)及應(yīng)用》等書(shū)。

張亞英,博士,同濟(jì)大學(xué)電子與信息工程學(xué)院計(jì)算機(jī)系副教授,研究方向?yàn)榉植寂c移動(dòng)計(jì)算、嵌入式系統(tǒng)以及系統(tǒng)軟件等。

尤晉元,上海交通大學(xué)計(jì)算機(jī)科學(xué)及工程系教授、博士生導(dǎo)師。在科研方面,主要從事操作系統(tǒng)和分布對(duì)象計(jì)算技術(shù)方面的研究。在教學(xué)方面,長(zhǎng)期承擔(dān)操作系統(tǒng)及分布計(jì)算等課程的教學(xué)工作。主編和翻譯了多本操作系統(tǒng)教材和參考書(shū),包括《UNIX操作系統(tǒng)教程》、《UNIX高級(jí)編程技術(shù)》、《UNIX環(huán)境高級(jí)編程》和《操作系統(tǒng):設(shè)計(jì)與實(shí)現(xiàn)》等。

目錄? · · · · · ·

第1章 UNIX基礎(chǔ)知識(shí)

1.1 引言

1.2 UNIX體系結(jié)構(gòu)

1.3 登錄

1.4 文件和目錄

1.5 輸入和輸出

1.6 程序和進(jìn)程

1.7 出錯(cuò)處理

1.8 用戶標(biāo)識(shí)

1.9 信號(hào)

1.10 時(shí)間值

1.11 系統(tǒng)調(diào)用和庫(kù)函數(shù)

1.12 小結(jié)

習(xí)題

第2章 UNIX標(biāo)準(zhǔn)及實(shí)現(xiàn)

2.1 引言

2.2 UNIX標(biāo)準(zhǔn)化

2.2.1 ISO C

2.2.2 IEEE POSIX

2.2.3 Single UNIX Specification

2.2.4 FIPS

2.3 UNIX系統(tǒng)實(shí)現(xiàn)

2.3.1 SVR4

2.3.2 4.4BSD

2.3.3 FreeBSD

2.3.4 Linux

2.3.5 Mac OS X

2.3.6 Solaris

2.3.7 其他UNIX系統(tǒng)

2.4 標(biāo)準(zhǔn)和實(shí)現(xiàn)的關(guān)系

2.5 限制

2.5.1 ISO C限制

2.5.2 POSIX限制

2.5.3 XSI限制

2.5.4 函數(shù)sysconf、pathconf和fpathconf

2.5.5 不確定的運(yùn)行時(shí)限制

2.6 選項(xiàng)

2.7 功能測(cè)試宏

2.8 基本系統(tǒng)數(shù)據(jù)類型

2.9 標(biāo)準(zhǔn)之間的沖突

2.10 小結(jié)

習(xí)題

第3章 文件I/O

3.1 引言

3.2 文件描述符

3.3 函數(shù)open和openat

3.4 函數(shù)creat

3.5 函數(shù)close

3.6 函數(shù)lseek

3.7 函數(shù)read

3.8 函數(shù)write

3.9 I/O的效率

3.10 文件共享

3.11 原子操作

3.12 函數(shù)dup和dup2

3.13 函數(shù)sync、fsync和fdatasync

3.14 函數(shù)fcntl

3.15 函數(shù)ioctl

3.16 /dev/fd

3.17 小結(jié)

習(xí)題

第4章 文件和目錄

4.1 引言

4.2 函數(shù)stat、fstat、fstatat和lstat

4.3 文件類型

4.4 設(shè)置用戶ID和設(shè)置組ID

4.5 文件訪問(wèn)權(quán)限

4.6 新文件和目錄的所有權(quán)

4.7 函數(shù)access和faccessat

4.8 函數(shù)umask

4.9 函數(shù)chmod、fchmod和fchmodat

4.10 粘著位

4.11 函數(shù)chown、fchown、fchownat和lchown

4.12 文件長(zhǎng)度

4.13 文件截?cái)?/p>

4.14 文件系統(tǒng)

4.15 函數(shù)link、linkat、unlink、unlinkat和remove

4.16 函數(shù)rename和renameat

4.17 符號(hào)鏈接

4.18 創(chuàng)建和讀取符號(hào)鏈接

4.19 文件的時(shí)間

4.20 函數(shù)futimens、utimensat和utimes

4.21 函數(shù)mkdir、mkdirat和rmdir

4.22 讀目錄

4.23 函數(shù)chdir、fchdir和getcwd

4.24 設(shè)備特殊文件

4.25 文件訪問(wèn)權(quán)限位小結(jié)

4.26 小結(jié)

習(xí)題

第5章 標(biāo)準(zhǔn)I/O庫(kù)

5.1 引言

5.2 流和FILE對(duì)象

5.3 標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤

5.4 緩沖

5.5 打開(kāi)流

5.6 讀和寫流

5.7 每次一行I/O

5.8 標(biāo)準(zhǔn)I/O的效率

5.9 二進(jìn)制I/O

5.10 定位流

5.11 格式化I/O

5.12 實(shí)現(xiàn)細(xì)節(jié)

5.13 臨時(shí)文件

5.14 內(nèi)存流

5.15 標(biāo)準(zhǔn)I/O的替代軟件

5.16 小結(jié)

習(xí)題

第6章 系統(tǒng)數(shù)據(jù)文件和信息

6.1 引言

6.2 口令文件

6.3 陰影口令

6.4 組文件

6.5 附屬組ID

6.6 實(shí)現(xiàn)區(qū)別

6.7 其他數(shù)據(jù)文件

6.8 登錄賬戶記錄

6.9 系統(tǒng)標(biāo)識(shí)

6.10 時(shí)間和日期例程

6.11 小結(jié)

習(xí)題

第7章 進(jìn)程環(huán)境

7.1 引言

7.2 main函數(shù)

7.3 進(jìn)程終止

7.4 命令行參數(shù)

7.5 環(huán)境表

7.6 C程序的存儲(chǔ)空間布局

7.7 共享庫(kù)

7.8 存儲(chǔ)空間分配

7.9 環(huán)境變量

7.10 函數(shù)setjmp和longjmp

7.11 函數(shù)getrlimit和setrlimit

7.12 小結(jié)

習(xí)題

第8章 進(jìn)程控制

8.1 引言

8.2 進(jìn)程標(biāo)識(shí)

8.3 函數(shù)fork

8.4 函數(shù)vfork

8.5 函數(shù)exit

8.6 函數(shù)wait和waitpid

8.7 函數(shù)waitid

8.8 函數(shù)wait3和wait4

8.9 競(jìng)爭(zhēng)條件

8.10 函數(shù)exec

8.11 更改用戶ID和更改組ID

8.12 解釋器文件

8.13 函數(shù)system

8.14 進(jìn)程會(huì)計(jì)

8.15 用戶標(biāo)識(shí)

8.16 進(jìn)程調(diào)度

8.17 進(jìn)程時(shí)間

8.18 小結(jié)

習(xí)題

第9章 進(jìn)程關(guān)系

9.1 引言

9.2 終端登錄

9.3 網(wǎng)絡(luò)登錄

9.4 進(jìn)程組

9.5 會(huì)話

9.6 控制終端

9.7 函數(shù)tcgetpgrp、tcsetpgrp和tcgetsid

9.8 作業(yè)控制

9.9 shell執(zhí)行程序

9.10 孤兒進(jìn)程組

9.11 FreeBSD實(shí)現(xiàn)

9.12 小結(jié)

習(xí)題

第10章 信號(hào)

10.1 引言

10.2 信號(hào)概念

10.3 函數(shù)signal

10.4 不可靠的信號(hào)

10.5 中斷的系統(tǒng)調(diào)用

10.6 可重入函數(shù)

10.7 SIGCLD語(yǔ)義

10.8 可靠信號(hào)術(shù)語(yǔ)和語(yǔ)義

10.9 函數(shù)kill和raise

10.10 函數(shù)alarm和pause

10.11 信號(hào)集

10.12 函數(shù)sigprocmask

10.13 函數(shù)sigpending

10.14 函數(shù)sigaction

10.15 函數(shù)sigsetjmp和siglongjmp

10.16 函數(shù)sigsuspend

10.17 函數(shù)abort

10.18 函數(shù)system

10.19 函數(shù)sleep、nanosleep和clock_nanosleep

10.20 函數(shù)sigqueue

10.21 作業(yè)控制信號(hào)

10.22 信號(hào)名和編號(hào)

10.23 小結(jié)

習(xí)題

第11章 線程

11.1 引言

11.2 線程概念

11.3 線程標(biāo)識(shí)

11.4 線程創(chuàng)建

11.5 線程終止

11.6 線程同步

11.6.1 互斥量

11.6.2 避免死鎖

11.6.3 函數(shù)pthread_mutex_timedlock

11.6.4 讀寫鎖

11.6.5 帶有超時(shí)的讀寫鎖

11.6.6 條件變量

11.6.7 自旋鎖

11.6.8 屏障

11.7 小結(jié)

習(xí)題

第12章 線程控制

12.1 引言

12.2 線程限制

12.3 線程屬性

12.4 同步屬性

12.4.1 互斥量屬性

12.4.2 讀寫鎖屬性

12.4.3 條件變量屬性

12.4.4 屏障屬性

12.5 重入

12.6 線程特定數(shù)據(jù)

12.7 取消選項(xiàng)

12.8 線程和信號(hào)

12.9 線程和fork

12.10 線程和I/O

12.11 小結(jié)

習(xí)題

第13章 守護(hù)進(jìn)程

13.1 引言

13.2 守護(hù)進(jìn)程的特征

13.3 編程規(guī)則

13.4 出錯(cuò)記錄

13.5 單實(shí)例守護(hù)進(jìn)程

13.6 守護(hù)進(jìn)程的慣例

13.7 客戶進(jìn)程-服務(wù)器進(jìn)程模型

13.8 小結(jié)

習(xí)題

第14章 高級(jí)I/O

14.1 引言

14.2 非阻塞I/O

14.3 記錄鎖

14.4 I/O多路轉(zhuǎn)接

14.4.1 函數(shù)select和pselect

14.4.2 函數(shù)poll

14.5 異步I/O

14.5.1 System V異步I/O

14.5.2 BSD異步I/O

14.5.3 POSIX異步I/O

14.6 函數(shù)readv和writev

14.7 函數(shù)readn和writen

14.8 存儲(chǔ)映射I/O

14.9 小結(jié)


鏈接: https://pan.baidu.com/s/16_Ad_f18I6wHNfmJANH3yA 提取碼: wnmb 復(fù)制這段內(nèi)容后打開(kāi)百度網(wǎng)盤手機(jī)App,操作更方便哦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容