《UNIX環境高級編程(第3版)》

《UNIX環境高級編程(第3版)》linux

基本信息程序員

原書名:Advanced Programming in the UNIX Environment (3rd Edition) (Addison-Wesley Professional Computing Series)shell

原出版社: Addison-Wesley Professional數據庫

做者: (美)W. Richard Stevens    Stephen A. Rago   編程

譯者: 戚正偉 張亞英 尤晉元服務器

出版社:人民郵電出版社網絡

ISBN:9787115352118多線程

上架時間:2014-5-27併發

出版日期:2014 年6月異步

開本:16開

頁碼:812

版次:2-1

所屬分類:計算機 > 操做系統 > UNIX

更多關於》》》 《UNIX環境高級編程(第3版)

 

編輯推薦 

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 十、Mac OS X 10.6.8(Darwin 10.8.0)、FressBSD 8.0、Ubuntu 12.04(基於Linux 3.2內核)。

  與前兩版同樣,讀者仍能夠經過實例學習,這些實例包括了1萬多行可下載的ISO C源代碼,書中經過簡明但完整的程序闡述了400多個系統調用和函數,清楚地說明它們的用法、參數和返回值。爲了使讀者能融會貫通,書中還提供了幾個貫穿整章的案例,每一個案例都根據如今的技術環境進行了全面更新。

  本書幫助了幾代程序員寫出強大、高性能、可靠的代碼。第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程序員都是一本不可或缺的參考書。

 

媒體評論

  「本書第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

 

目錄

《unix環境高級編程(第3版)》

第1章 unix基礎知識 1

1.1 引言 1

1.2 unix體系結構 1

1.3 登陸 1

1.4 文件和目錄 3

1.5 輸入和輸出 6

1.6 程序和進程 8

1.7 出錯處理 11

1.8 用戶標識 13

1.9 信號 14

1.10 時間值 16

1.11 系統調用和庫函數 17

1.12 小結 18

習題 18

第2章 unix標準及實現 20

2.1 引言 20

2.2 unix標準化 20

2.2.1 iso c 20

2.2.2 ieee posix 21

2.2.3 single unix specification 25

2.2.4 fips 26

2.3 unix系統實現 26

2.3.1 svr4 27

2.3.2 4.4bsd 27

2.3.3 freebsd 28

2.3.4 linux 28

2.3.5 mac os x 28

2.3.6 solaris 28

2.3.7 其餘unix系統 29

2.4 標準和實現的關係 29

2.5 限制 29

2.5.1 iso c限制 30

2.5.2 posix限制 31

2.5.3 xsi限制 33

2.5.4 函數sysconf、pathconf和fpathconf 33

2.5.5 不肯定的運行時限制 40

2.6 選項 43

2.7 功能測試宏 46

2.8 基本系統數據類型 47

2.9 標準之間的衝突 48

2.10 小結 48

習題 48

第3章 文件i/o 49

3.1 引言 49

3.2 文件描述符 49

3.3 函數open和openat 50

3.4 函數creat 52

3.5 函數close 53

3.6 函數lseek 53

3.7 函數read 57

3.8 函數write 57

3.9 i/o的效率 58

3.10 文件共享 59

3.11 原子操做 62

3.12 函數dup和dup2 63

3.13 函數sync、fsync和fdatasync 65

3.14 函數fcntl 65

3.15 函數ioctl 70

3.16 /dev/fd 71

3.17 小結 72

習題 72

第4章 文件和目錄 74

4.1 引言 74

4.2 函數stat、fstat、fstatat和lstat 74

4.3 文件類型 75

4.4 設置用戶id和設置組id 78

4.5 文件訪問權限 79

4.6 新文件和目錄的全部權 80

4.7 函數access和faccessat 81

4.8 函數umask 82

4.9 函數chmod、fchmod和fchmodat 84

4.10 粘着位 87

4.11 函數chown、fchown、fchownat和lchown 87

4.12 文件長度 89

4.13 文件截斷 90

4.14 文件系統 90

4.15 函數link、linkat、unlink、unlinkat和remove 93

4.16 函數rename和renameat 95

4.17 符號連接 96

4.18 建立和讀取符號連接 99

4.19 文件的時間 99

4.20 函數futimens、utimensat和utimes 101

4.21 函數mkdir、mkdirat和rmdir 103

4.22 讀目錄 104

4.23 函數chdir、fchdir和getcwd 108

4.24 設備特殊文件 110

4.25 文件訪問權限位小結 112

4.26 小結 113

習題 113

第5章 標準i/o庫 115

5.1 引言 115

5.2 流和file對象 115

5.3 標準輸入、標準輸出和標準錯誤 116

5.4 緩衝 116

5.5 打開流 118

5.6 讀和寫流 120

5.7 每次一行i/o 122

5.8 標準i/o的效率 123

5.9 二進制i/o 125

5.10 定位流 126

5.11 格式化i/o 127

5.12 實現細節 131

5.13 臨時文件 134

5.14 內存流 137

5.15 標準i/o的替代軟件 140

5.16 小結 140

習題 140

第6章 系統數據文件和信息 142

6.1 引言 142

6.2 口令文件 142

6.3 陰影口令 145

6.4 組文件 146

6.5 附屬組id 147

6.6 實現區別 148

6.7 其餘數據文件 148

6.8 登陸帳戶記錄 149

6.9 系統標識 150

6.10 時間和日期例程 151

6.11 小結 157

習題 157

第7章 進程環境 158

7.1 引言 158

7.2 main函數 158

7.3 進程終止 158

7.4 命令行參數 162

7.5 環境表 163

7.6 c程序的存儲空間佈局 163

7.7 共享庫 165

7.8 存儲空間分配 165

7.9 環境變量 168

7.10 函數setjmp和longjmp 170

7.11 函數getrlimit和setrlimit 175

7.12 小結 180

習題 180

第8章 進程控制 181

8.1 引言 181

8.2 進程標識 181

8.3 函數fork 182

8.4 函數vfork 187

8.5 函數exit 188

8.6 函數wait和waitpid 190

8.7 函數waitid 194

8.8 函數wait3和wait4 195

8.9 競爭條件 196

8.10 函數exec 199

8.11 更改用戶id和更改組id 204

8.12 解釋器文件 207

8.13 函數system 211

8.14 進程會計 215

8.15 用戶標識 220

8.16 進程調度 221

8.17 進程時間 224

8.18 小結 226

習題 226

第9章 進程關係 228

9.1 引言 228

9.2 終端登陸 228

9.3 網絡登陸 231

9.4 進程組 233

9.5 會話 234

9.6 控制終端 235

9.7 函數tcgetpgrp、tcsetpgrp和tcgetsid 237

9.8 做業控制 237

9.9 shell執行程序 240

9.10 孤兒進程組 244

9.11 freebsd實現 246

9.12 小結 248

習題 248

第10章 信號 249

10.1 引言 249

10.2 信號概念 249

10.3 函數signal 256

10.4 不可靠的信號 259

10.5 中斷的系統調用 260

10.6 可重入函數 262

10.7 sigcld語義 264

10.8 可靠信號術語和語義 266

10.9 函數kill和raise 267

10.10 函數alarm和pause 268

10.11 信號集 273

10.12 函數sigprocmask 275

10.13 函數sigpending 276

10.14 函數sigaction 278

10.15 函數sigsetjmp和siglongjmp 283

10.16 函數sigsuspend 286

10.17 函數abort 291

10.18 函數system 293

10.19 函數sleep、nanosleep和clock_nanosleep 298

10.20 函數sigqueue 300

10.21 做業控制信號 301

10.22 信號名和編號 303

10.23 小結 305

習題 305

第11章 線程 307

11.1 引言 307

11.2 線程概念 307

11.3 線程標識 308

11.4 線程建立 309

11.5 線程終止 311

11.6 線程同步 318

11.6.1 互斥量 320

11.6.2 避免死鎖 322

11.6.3 函數pthread_mutex_timedlock 327

11.6.4 讀寫鎖 328

11.6.5 帶有超時的讀寫鎖 332

11.6.6 條件變量 332

11.6.7 自旋鎖 335

11.6.8 屏障 336

11.7 小結 340

習題 340

第12章 線程控制 341

12.1 引言 341

12.2 線程限制 341

12.3 線程屬性 342

12.4 同步屬性 345

12.4.1 互斥量屬性 345

12.4.2 讀寫鎖屬性 352

12.4.3 條件變量屬性 353

12.4.4 屏障屬性 353

12.5 重入 354

12.6 線程特定數據 358

12.7 取消選項 361

12.8 線程和信號 364

12.9 線程和fork 367

12.10 線程和i/o 370

12.11 小結 371

習題 371

第13章 守護進程 372

13.1 引言 372

13.2 守護進程的特徵 372

13.3 編程規則 374

13.4 出錯記錄 377

13.5 單實例守護進程 380

13.6 守護進程的慣例 381

13.7 客戶進程-服務器進程模型 386

13.8 小結 386

習題 387

第14章 高級i/o 388

14.1 引言 388

14.2 非阻塞i/o 388

14.3 記錄鎖 391

14.4 i/o多路轉接 403

14.4.1 函數select和pselect 404

14.4.2 函數poll 408

14.5 異步i/o 410

14.5.1 system v異步i/o 410

14.5.2 bsd異步i/o 411

14.5.3 posix異步i/o 411

14.6 函數readv和writev 419

14.7 函數readn和writen 421

14.8 存儲映射i/o 422

14.9 小結 428

習題 428

第15章 進程間通訊 429

15.1 引言 429

15.2 管道 430

15.3 函數popen和pclose 436

15.4 協同進程 441

15.5 fifo 445

15.6 xsi ipc 448

15.6.1 標識符和鍵 448

15.6.2 權限結構 449

15.6.3 結構限制 450

15.6.4 優勢和缺點 450

15.7 消息隊列 451

15.8 信號量 455

15.9 共享存儲 459

15.10 posix信號量 465

15.11 客戶進程-服務器進程屬性 470

15.11 小結 472

習題 472

第16章 網絡ipc:套接字 474

16.1 引言 474

16.2 套接字描述符 474

16.3 尋址 477

16.3.1 字節序 477

16.3.2 地址格式 478

16.3.3 地址查詢 480

16.3.4 將套接字與地址關聯 486

16.4 創建鏈接 487

16.5 數據傳輸 491

16.6 套接字選項 502

16.7 帶外數據 504

16.8 非阻塞和異步i/o 505

16.9 小結 506

習題 506

第17章 高級進程間通訊 507

17.1 引言 507

17.2 unix域套接字 507

17.3 惟一鏈接 512

17.4 傳送文件描述符 518

17.5 open服務器進程第1版 527

17.6 open服務器進程第2版 533

17.7 小結 542

習題 542

第18章 終端i/o 544

18.1 引言 544

18.2 綜述 544

18.3 特殊輸入字符 549

18.4 得到和設置終端屬性 553

18.5 終端選項標誌 554

18.6 stty命令 560

18.7 波特率函數 560

18.8 行控制函數 561

18.9 終端標識 562

18.10 規範模式 567

18.11 非規範模式 570

18.12 終端窗口大小 576

18.13 termcap、terminfo和curses 578

18.14 小結 578

習題 579

第19章 僞終端 580

19.1 引言 580

19.2 概述 580

19.3 打開僞終端設備 585

19.4 函數pty_fork 588

19.5 pty程序 590

19.6 使用pty程序 595

19.7 高級特性 600

19.8 小結 601

習題 601

第20章 數據庫函數庫 603

20.1 引言 603

20.2 歷史 603

20.3 函數庫 604

20.4 實現概述 605

20.5 集中式或非集中式 608

20.6 併發 610

20.7 構造函數庫 610

20.8 源代碼 611

20.9 性能 635

20.10 小結 639

習題 639

第21章 與網絡打印機通訊 640

21.1 引言 640

21.2 網絡打印協議 640

21.3 超文本傳輸協議http 642

21.4 打印假脫機技術 643

21.5 源代碼 644

21.6 小結 684

習題 684

附錄a 函數原型 685

附錄a 函數原型附錄b 其餘源代碼 721

附錄c 部分習題答案 730

附錄參考書目 730

索引 770

 

本圖書信息來源:互動出版網

相關文章
相關標籤/搜索