産品特色
編輯推薦
適讀人群 :所有層次UNIX/Linux程序員 20多年來,嚴謹的C程序員都是依靠一本書來深入瞭解驅動UNIX和Linux內核的編程接口的實用知識的,這本書就是W. Richard Stevens所著的《UNIX高級環境編程》。現在,Stevens的同事Steve Rago徹底更新瞭這本經典著作。新的第3版支持當今領先的係統平颱,反映瞭技術進展和實踐,並且符閤新的Single UNIX Specification第4版(SUSv4)。
Rago保留瞭使本書前版成為經典之作的精髓和方法。他在Stevens原著的基礎上,從基礎的文件、目錄和進程講起,並給諸如信號處理和終端I/O之類的先進技術保留較大的篇幅。他還深入討論瞭綫程和多綫程編程、使用套接字接口驅動進程間通信(IPC)等方麵的內容。
這一版涵蓋瞭70多個新版POSIX.1標準的新增接口,包括POSIX異步I/O、鏇轉鎖、屏障(barrier)和POSIX信號量。此外,這一版刪除瞭許多過時的接口,保留瞭一些廣泛使用的接口。書中幾乎所有實例都已經在目前主流的4個平颱上測試過,包括Solaris 10、Mac OS X 10.6.8(Darwin 10.8.0)、FressBSD 8.0、Ubuntu 12.04(基於Linux 3.2內核)。
與前兩版一樣,讀者仍可以通過實例學習,這些實例包括瞭1萬多行可下載的ISO C源代碼,書中通過簡明但完整的程序闡述瞭400多個係統調用和函數,清楚地說明它們的用法、參數和返迴值。為瞭使讀者能融會貫通,書中還提供瞭幾個貫穿整章的案例,每個案例都根據現在的技術環境進行瞭全麵更新。
《UNIX環境高級編程(第3版)》幫助瞭幾代程序員寫齣強大、高性能、可靠的代碼。第3版根據當今主流係統進行更新,更具實用價值。
內容簡介
《UNIX環境高級編程(第3版)》是被譽為UNIX編程“聖經”的Advanced Programming in the UNIX Environment一書的第3版。在本書第2版齣版後的8年中,UNIX行業發生瞭巨大的變化,特彆是影響UNIX編程接口的有關標準變化很大。本書在保持前一版風格的基礎上,根據新的標準對內容進行瞭修訂和增補,反映瞭新的技術發展。書中除瞭介紹UNIX文件和目錄、標準I/O庫、係統數據文件和信息、進程環境、進程控製、進程關係、信號、綫程、綫程控製、守護進程、各種I/O、進程間通信、網絡IPC、僞終端等方麵的內容,還在此基礎上介紹瞭眾多應用實例,包括如何創建數據庫函數庫以及如何與網絡打印機通信等。此外,還在附錄中給齣瞭函數原型和部分習題的答案。
《UNIX環境高級編程(第3版)》概念清晰,闡述精闢,對於所有層次UNIX/Linux程序員都是一本不可或缺的參考書。
作者簡介
W. Richard Stevens,國際知名的UNIX和網絡專傢,備受贊譽的技術作傢。生前著有多部經典的傳世之作,包括《UNIX網絡編程》(兩捲本)、《TCP/IP詳解》(三捲本)和本書第1版。
Stephen A. Rago,UNIX程序員,目前任NEC美國實驗室存儲係統集團研究員。之前是貝爾實驗室的UNIX係統V版本4的開發人員之一。著有《UNIX係統V網絡編程》,並曾擔任本書第1版的技術審校和第2版的共同作者。
戚正偉,博士,上海交通大學軟件學院副教授,微軟亞洲研究院(2008)和美國CMU大學(2011-2012)訪問學者。研究方嚮為係統軟件和程序分析,著有《New Blue Pill深入理解硬件虛擬機》和《嵌入式GIS開發及應用》等書。
張亞英,博士,同濟大學電子與信息工程學院計算機係副教授,研究方嚮為分布與移動計算、嵌入式係統以及係統軟件等。
尤晉元,上海交通大學計算機科學及工程係教授、博士生導師。在科研方麵,主要從事操作係統和分布對象計算技術方麵的研究。在教學方麵,長期承擔操作係統及分布計算等課程的教學工作。主編和翻譯瞭多本操作係統教材和參考書,包括《UNIX操作係統教程》、《UNIX高級編程技術》、《UNIX環境高級編程》和《操作係統:設計與實現》等。
內頁插圖
精彩書評
★本書第1版連同Stevens所著的係列網絡技術書籍,被公認為匠心獨具的名著,成為極其暢銷的作品……總之,這是一本彌足珍貴的經典著作的更新版。
——Dennis Ritchie,圖靈奬得主,UNIX操作係統和C語言之父
★對任何一個嚴謹的、專業的UNIX係統程序員而言,本書都是不可或缺的參考書。Rago更新和擴展瞭Stevens的經典著作,並保持瞭原書的風貌。書中利用清晰的實例演示瞭API的使用過程,還提到瞭許多在不同UNIX係統實現上編程時需要注意的陷阱,並指齣如何使用相關的標準(如POSIX 1003.1 2004版和Single UNIX Specification第3版)來避免這些錯誤。
——Andrew Josey, The Open Group標準部門主管,POSIX 1003.1標準工作組主席
★UNIX編程經典之一。
——Eric S. Raymond,《UNIX編程藝術》作者
★Stephen Rago的更新版本對於使用眾多UNIX及相關操作係統環境的廣大專業用戶來說是一個遲來的喜訊。這一版不僅刪除瞭過時的接口,吸納瞭較新的開發接口,還根據UNIX及類UNIX操作係統環境的幾種主流實現發布的新版本全麵更新瞭所有主題、實例和應用的背景。難能可貴的是,這一版本還保持瞭經典的第1版的風格和品位。
——Mukesh Kacker,Pronto Networks公司聯閤創始人和前任CTO
★本書對於任何在UNIX係統上編寫程序的開發人員來說都是非常重要的參考書。當我想要瞭解或者重新迴顧各種係統接口時,這本書是求助工具。Stephen Rago成功地修訂瞭本書,使其與新的操作係統(如GNU/Linux和蘋果的OS X)相容,並保持瞭第1版易讀和實用的特質。它將永遠擺放在我桌上隨手可及的位置。
——Benjamin Kuperman博士,斯沃斯莫爾學院
★這是每一位嚴謹的UNIX C程序員必備的書籍。它深入、全麵、清晰的解釋是無可匹敵的。
——UniForum Monthly
★從W. Richard Stevens的這本書中可以找到更多易於理解的、詳盡的UNIX係統內部細節。這本書包含瞭大量實際的例子,對係統編程工作非常有益。
——RS/Magazine
目錄
第1章 UNIX基礎知識
1.1 引言
1.2 UNIX體係結構
1.3 登錄
1.4 文件和目錄
1.5 輸入和輸齣
1.6 程序和進程
1.7 齣錯處理
1.8 用戶標識
1.9 信號
1.10 時間值
1.11 係統調用和庫函數
1.12 小結
習題
第2章 UNIX標準及實現
2.1 引言
2.2 UNIX標準化
2.2.1 ISO C
2.2.2 IEEE POSIX
2.2.3 Single UNIX Specification
2.2.4 FIPS
2.3 UNIX係統實現
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係統
2.4 標準和實現的關係
2.5 限製
2.5.1 ISO C限製
2.5.2 POSIX限製
2.5.3 XSI限製
2.5.4 函數sysconf、pathconf和fpathconf
2.5.5 不確定的運行時限製
2.6 選項
2.7 功能測試宏
2.8 基本係統數據類型
2.9 標準之間的衝突
2.10 小結
習題
第3章 文件I/O
3.1 引言
3.2 文件描述符
3.3 函數open和openat
3.4 函數creat
3.5 函數close
3.6 函數lseek
3.7 函數read
3.8 函數write
3.9 I/O的效率
3.10 文件共享
3.11 原子操作
3.12 函數dup和dup2
3.13 函數sync、fsync和fdatasync
3.14 函數fcntl
3.15 函數ioctl
3.16 /dev/fd
3.17 小結
習題
第4章 文件和目錄
4.1 引言
4.2 函數stat、fstat、fstatat和lstat
4.3 文件類型
4.4 設置用戶ID和設置組ID
4.5 文件訪問權限
4.6 新文件和目錄的所有權
4.7 函數access和faccessat
4.8 函數umask
4.9 函數chmod、fchmod和fchmodat
4.10 粘著位
4.11 函數chown、fchown、fchownat和lchown
4.12 文件長度
4.13 文件截斷
4.14 文件係統
4.15 函數link、linkat、unlink、unlinkat和remove
4.16 函數rename和renameat
4.17 符號鏈接
4.18 創建和讀取符號鏈接
4.19 文件的時間
4.20 函數futimens、utimensat和utimes
4.21 函數mkdir、mkdirat和rmdir
4.22 讀目錄
4.23 函數chdir、fchdir和getcwd
4.24 設備特殊文件
4.25 文件訪問權限位小結
4.26 小結
習題
第5章 標準I/O庫
5.1 引言
5.2 流和FILE對象
5.3 標準輸入、標準輸齣和標準錯誤
5.4 緩衝
5.5 打開流
5.6 讀和寫流
5.7 每次一行I/O
5.8 標準I/O的效率
5.9 二進製I/O
5.10 定位流
5.11 格式化I/O
5.12 實現細節
5.13 臨時文件
5.14 內存流
5.15 標準I/O的替代軟件
5.16 小結
習題
第6章 係統數據文件和信息
6.1 引言
6.2 口令文件
6.3 陰影口令
6.4 組文件
6.5 附屬組ID
6.6 實現區彆
6.7 其他數據文件
6.8 登錄賬戶記錄
6.9 係統標識
6.10 時間和日期例程
6.11 小結
習題
第7章 進程環境
7.1 引言
7.2 main函數
7.3 進程終止
7.4 命令行參數
7.5 環境錶
7.6 C程序的存儲空間布局
7.7 共享庫
7.8 存儲空間分配
7.9 環境變量
7.10 函數setjmp和longjmp
7.11 函數getrlimit和setrlimit
7.12 小結
習題
第8章 進程控製
8.1 引言
8.2 進程標識
8.3 函數fork
8.4 函數vfork
8.5 函數exit
8.6 函數wait和waitpid
8.7 函數waitid
8.8 函數wait3和wait4
8.9 競爭條件
8.10 函數exec
8.11 更改用戶ID和更改組ID
8.12 解釋器文件
8.13 函數system
8.14 進程會計
8.15 用戶標識
8.16 進程調度
8.17 進程時間
8.18 小結
習題
第9章 進程關係
9.1 引言
9.2 終端登錄
9.3 網絡登錄
9.4 進程組
9.5 會話
9.6 控製終端
9.7 函數tcgetpgrp、tcsetpgrp和tcgetsid
9.8 作業控製
9.9 shell執行程序
9.10 孤兒進程組
9.11 FreeBSD實現
9.12 小結
習題
第10章 信號
10.1 引言
10.2 信號概念
10.3 函數signal
10.4 不可靠的信號
10.5 中斷的係統調用
10.6 可重入函數
10.7 SIGCLD語義
10.8 可靠信號術語和語義
10.9 函數kill和raise
10.10 函數alarm和pause
10.11 信號集
10.12 函數sigprocmask
10.13 函數sigpending
10.14 函數sigaction
10.15 函數sigsetjmp和siglongjmp
10.16 函數sigsuspend
10.17 函數abort
10.18 函數system
10.19 函數sleep、nanosleep和clock_nanosleep
10.20 函數sigqueue
10.21 作業控製信號
10.22 信號名和編號
10.23 小結
習題
第11章 綫程
11.1 引言
11.2 綫程概念
11.3 綫程標識
11.4 綫程創建
11.5 綫程終止
11.6 綫程同步
11.6.1 互斥量
11.6.2 避免死鎖
11.6.3 函數pthread_mutex_timedlock
11.6.4 讀寫鎖
11.6.5 帶有超時的讀寫鎖
11.6.6 條件變量
11.6.7 自鏇鎖
11.6.8 屏障
11.7 小結
習題
第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 綫程特定數據
12.7 取消選項
12.8 綫程和信號
12.9 綫程和fork
12.10 綫程和I/O
12.11 小結
習題
第13章 守護進程
13.1 引言
13.2 守護進程的特徵
13.3 編程規則
13.4 齣錯記錄
13.5 單實例守護進程
13.6 守護進程的慣例
13.7 客戶進程-服務器進程模型
13.8 小結
習題
第14章 高級I/O
14.1 引言
14.2 非阻塞I/O
14.3 記錄鎖
14.4 I/O多路轉接
14.4.1 函數select和pselect
14.4.2 函數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 函數readv和writev
14.7 函數readn和writen
14.8 存儲映射I/O
14.9 小結
精彩書摘
由於1003.1標準說明瞭一個接口(interface)而不是一種實現(implementation),所以並不區分係統調用和庫函數。所有在標準中的例程都被稱為函數。
標準是不斷演進的,1003.1標準也不例外。該標準的1988版,即IEEE標準1003.1-1988經修改後遞交給IS0,它沒有增加新的接口或功能,但修訂瞭文本。最終的文檔作為IEEE標準1003.1-1990正式齣版[IEEE 1990],這也就是國際標準ISO/IEC 9945-1:1990。該標準通常稱為POSIX.1,本書將使用此術語來錶示不同版本的標準。
IEEE 1003.1工作組此後繼續對這一標準做瞭更多修改。1996年,該標準的修訂版發布,它包括瞭1003.1.1990、1003.1b-1993實時擴展標準以及被稱為pthreads的多綫程編程接口(POSIX綫程),這就是國際標準IS0/IEC 9945-1:1996。1999年齣版瞭IEEE標準1003.1d-1999,其中增加瞭更多實時接口。一年後,齣版瞭IEEE標準l003.1j-2000和1003.1q-2000,前者包含瞭更多實時接口,後者增加瞭標準在事件跟蹤方麵的擴展。
2001年的1003.1版本與以前各版本有較大的差彆,它組閤瞭多個1003.1的修正、1003.2標準以及Single UNIX Specificaiton(SUS)第2版的若乾部分(對於SUS,後麵將進行更多說明),這形成瞭IEEE標準1003.1-2001,它包括下列幾個標準。
ISO/IEC 9945-1(IEEE標準l003.1-1996),包括
IEEE標準1003.1-1990
IEEE標準1003.1b-1993(實時擴展)
IEEE標準1003.1c-1995(pthreads)
IEEE標準1003.1i-1995(實時技術勘誤錶)
IEEE P1003.1a草案(係統接口修正)
IEEE標準1003.1d-1999(高級實時擴展)
IEEE標準1003.1j-2000(更多高級實時擴展)
IEEE標準1003.1q-2000(跟蹤)
部分IEEE標準1003.1g-2000(協議無關接口)
ISO/IEC 9945-2(IEEE標準1003.2-1993)
IEEE P1003.2b草案(shell及實用程序的修正)
IEEE標準1003.2d.1994(批處理擴展)。
……
前言/序言
引言
從我第一次修訂《UNIX環境高級編程》一書以來已經快有8年瞭,期間發生瞭很多的變化。
· 在齣版第2版之前,Open Group完成瞭2004版的Single UNIX Specification,它涵蓋瞭兩套勘誤錶的修改。2008年,Open Group完成瞭新版的Single UNIX Specification,它更新瞭基本定義,添加瞭新的接口,並且去除瞭棄用的接口。這套規範被稱為2008年版的POSIX.1,其中包含第7版的基本規範,並在2009年發行。2010年,它與更新後的curses接口捆綁,一起作為Single UNIX Specification第4版(SUSv4)進行再版。
· 運行在Intel處理器上的Mac OS X操作係統的10.5、10.6和10.8版,被Open Group認證為UNIX係統。
· 蘋果公司停止瞭PowerPC平颱上Mac OS X的開發。在10.6發行版(Snow Leopard)之後隻針對x86平颱發布瞭新的操作係統版本。
· Solaris操作係統以開源的形式發布,試圖與FreeBSD、Linux和Mac OS X遵循的開源模式在聲望上一爭高下。在201
UNIX環境高級編程(第3版) [Advanced Programming in the UNIX Environment, Third Edition] epub pdf mobi txt 電子書 下載 2024
UNIX環境高級編程(第3版) [Advanced Programming in the UNIX Environment, Third Edition] 下載 epub mobi pdf txt 電子書
UNIX環境高級編程(第3版) [Advanced Programming in the UNIX Environment, Third Edition] mobi pdf epub txt 電子書 下載 2024
UNIX環境高級編程(第3版) [Advanced Programming in the UNIX Environment, Third Edition] epub pdf mobi txt 電子書 下載 2024