《UNIX環境高級編程(第3版)》是2019年5月人民郵電出版社出版的圖書,作者是[美]W·Richard Stevens、Stephen A·Rago。
基本介紹
- 書名:UNIX環境高級編程(第3版)
- 作者:[美]W·Richard Stevens、Stephen A·Rag
- 出版社:人民郵電出版社
- 出版時間:2019年5月
- 頁數:812 頁
- 定價:128 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787115352118
內容簡介,圖書目錄,
內容簡介
《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章 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 83
4.9 函式chmod、fchmod和fchmodat 84
4.10 粘著位 87
4.11 函式chown、fchown、fchownat和lchown 88
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 屏障屬性 354
12.5 重入 354
12.6 執行緒特定數據 358
12.7 取消選項 362
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.12 小結 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
附錄B 其他原始碼 721
附錄C 部分習題答案 730
參考書目 763
索引 770