UNIX環境高級編程與開發

12.3 12.4 14.2

基本信息

原書名:Advanced Programming in the UNIX Environment
原出版社: Addison-Wesley
作者:(美)W.Richard Stevens, Stephen A.Rago
譯者:尤晉元 張亞英 戚正偉
叢書名: 圖靈程式設計叢書 作業系統
出版社:人民郵電出版社
ISBN:7115147310
出版日期:2006 年5月
開本:16開
頁碼:758
版次:2-1

內容簡介

本書是被譽為UNIX編程“聖經”的Advanced Programming in the UNIX Environment一書的第2版。在
本書第1版出版後的十幾年中,UNIX行業已經有了巨大的變化,特別是影響UNIX編程接口的有關標準變
化很大。本書在保持了前一版風格的基礎上,根據最新的標準對內容進行了修訂和增補,反映了最新的技
術發展。書中除了介紹UNIX檔案和目錄、標準I/O庫、系統數據檔案和信息、進程環境、進程控制、進程
關係、信號、執行緒、執行緒控制、守護進程、各種I/O、進程間通信、網路IPC、偽終端等方面的內容,還在
此基礎上介紹了多個套用實例,包括如何創建資料庫函式館以及如何與網路印表機通信等。此外,還在附
錄中給出了函式原型和部分習題的答案。
本書內容權威,概念清晰,闡述精闢,對於所有層次UNIX/Linux程式設計師都是一本不可或缺的參考書。

作譯者

尤晉元上海交通大學計算機科學及工程系教授、博士生導師。在科研方面,主要從事作業系統和分布對象計算技術方面的研究;在教學方面,長期承擔作業系統及分布計算等課程的教學工作。主編和翻譯了多本作業系統教材和參考書,包括《UNIX作業系統教程》、《UNIX高級編程技術》、《UNIX環境高級
編程》和《作業系統:設計與實現》等。
張亞英博士,畢業於上海交通大學計算機軟體與理論專業,現任教於同濟大學計算機系。

目錄

第1章unix基礎知識1
1.1 引言1
1.2 unix體系結構1
1.3 登錄1
1.4 檔案和目錄3
1.5 輸入和輸出6
1.6 程式和進程8
1.7 出錯處理10
1.8 用戶標識12
1.9 信號14
1.10 時間值15
1.11 系統調用和庫函式16
1.12 小結17
習題18
第2章unix標準化及實現19
2.1 引言19
2.2 unix標準化19
2.2.1 iso c 19
2.2.2 ieee posix 20
2.2.3 single unix specification 25
.2.2.4 fips 26
2.3 unix系統實現26
2.3.1 svr4 26
2.3.2 4.4bsd 27
2.3.3 freebsd 27
2.3.4 linux 27
2.3.5 mac os x 28
2.3.6 solaris 28
2.3.7 其他unix系統28
2.4 標準和實現的關係28
2.5 限制29
2.5.1 iso c限制29
2.5.2 posix限制30
2.5.3 xsi限制32
2.5.4 sysconfpathconf和fpathconf
函式32
2.5.5 不確定的運行時限制38
2.6 選項42
2.7 功能測試宏44
2.8 基本系統數據類型45
2.9 標準之間的衝突45
2.10 小結46
習題46
第3章檔案i/o 47
3.1 引言47
3.2 檔案描述符47
3.3 open函式48
3.4 creat函式49
3.5 close函式50
3.6 lseek函式50
3.7 read函式53
3.8 write函式54
3.9 i/o的效率54
3.10 檔案共享56
3.11 原子操作59
3.12 dup和dup2函式60
3.13 sync、fsync和fdatasync函式61
3.14 fcntl函式62
3.15 ioctl函式66
3.16 /dev/fd 67
3.17 小結68
習題68
第4章檔案和目錄71
4.1 引言71
4.2 stat、fstat和lstat函式71
目錄
4.3 檔案類型72
4.4 設定用戶id和設定組id 74
4.5 檔案訪問許可權75
4.6 新檔案和目錄的所有權77
4.7 access函式77
4.8 umask函式79
4.9 chmod和fchmod函式81
4.10 粘住位83
4.11 chown、fchown和lchown函式84
4.12 檔案長度85
4.13 檔案截短86
4.14 檔案系統86
4.15 link、unlink、remove和rename
函式89
4.16 符號連結91
4.17 symlink和readlink函式94
4.18 檔案的時間94
4.19 utime函式95
4.20 mkdir和rmdir函式97
4.21 讀目錄98
4.22 chdirfchdirgetcwd函式102
4.23 設備特殊檔案104
4.24 檔案訪問許可權位小結106
4.25 小結106
習題107
第5章標準i/o庫109
5.1 引言109
5.2 流和file對象109
5.3 標準輸入、標準輸出和標準出錯110
5.4 緩衝110
5.5 打開流112
5.6 讀和寫流114
5.7 每次一行i/o 116
5.8 標準i/o的效率117
5.9 二進制i/o 119
5.10 定位流120
5.11 格式化i/o 121
5.12 實現細節125
5.13 臨時檔案127
5.14 標準i/o的替代軟體130
5.15 小結130
習題130
第6章系統數據檔案和信息133
6.1 引言133
6.2 口令檔案133
6.3 陰影口令136
6.4 組檔案137
6.5 附加組id138
6.6 實現的區別139
6.7 其他數據檔案139
6.8 登錄賬戶記錄140
6.9 系統標識141
6.10 時間和日期例程142
6.11 小結146
習題146
第7章進程環境147
7.1 引言147
7.2 main函式147
7.3 進程終止147
7.4 命令行參數151
7.5 環境表152
7.6 c程式的存儲空間布局152
7.7 共享庫154
7.8 存儲器分配154
7.9 環境變數157
7.10 setjmp和longjmp函式159
7.11 getrlimit和setrlimit函式164
7.12 小結168
習題168
第8章進程控制171
8.1 引言171
8.2 進程標識符171
8.3 fork函式172
8.4 vfork函式176
8.5 exit函式178
8.6 wait和waitpid函式179
8.7 waitid函式183
8.8 wait3和wait4函式184
8.9 競爭條件185
8.10 exec函式188
2 目錄
8.11 更改用戶id和組id 192
8.12 解釋器檔案196
8.13 system函式200
8.14 進程會計203
8.15 用戶標識208
8.16 進程時間208
8.17 小結210
習題211
第9章進程關係213
9.1 引言213
9.2 終端登錄213
9.3 網路登錄216
9.4 進程組218
9.5 會話219
9.6 控制終端220
9.7 tcgetpgrp、tcsetpgrp和tcgetsid
函式221
9.8 作業控制222
9.9 shell執行程式225
9.10 孤兒進程組228
9.11 freebsd實現230
9.12 小結231
習題232
第10章信號233
10.1 引言233
10.2 信號概念233
10.3 signal函式240
10.4 不可靠的信號242
10.5 中斷的系統調用244
10.6 可重入函式246
10.7 sigcld語義248
10.8 可靠信號術語和語義250
10.9 kill和raise函式251
10.10 alarm和pause函式252
10.11 信號集256
10.12 sigprocmask函式258
10.13 sigpending函式259
10.14 sigaction函式261
10.15 sigsetjmp和siglongjmp函式266
10.16 sigsuspend函式268
10.17 abort函式274
10.18 system函式276
10.19 sleep函式280
10.20 作業控制信號282
10.21 其他特徵284
10.22 小結285
習題285
第11章執行緒287
11.1 引言287
11.2 執行緒概念287
11.3 執行緒標識288
11.4 執行緒的創建288
11.5 執行緒終止291
11.6 執行緒同步297
11.7 小結311
習題311
第12章執行緒控制313
12.1 引言313
12.2 執行緒限制313
12.3 執行緒屬性314
12.4 同步屬性318
12.5 重入324
12.6 執行緒私有數據328
12.7 取消選項331
12.8 執行緒和信號333
12.9 執行緒和fork 336
12.10 執行緒和i/o 339
12.11 小結340
習題340
第13章守護進程341
13.1 引言341
13.2 守護進程的特徵341
13.3 編程規則342
13.4 出錯記錄345
13.5 單實例守護進程348
13.6 守護進程的慣例350
13.7 客戶進程-伺服器進程模型354
13.8 小結354
目錄 3
習題354
第14章高級i/o355
14.1 引言355
14.2 非阻塞i/o 355
14.3 記錄鎖357
14.4 streams 370
14.5 i/o多路轉接379
14.5.1 select和pselect函式381
14.5.2 poll函式384
14.6 異步i/o 386
14.6.1 系統v異步i/o 386
14.6.2 bsd異步i/o 387
14.7 readvwritev函式387
14.8 readn和writen函式389
14.9 存儲映射i/o 390
14.10 小結395
習題396
第15章進程間通信397
15.1 引言397
15.2 管道398
15.3 popen和pclose函式403
15.4 協同進程408
15.5 fifo 412
15.6 xsi ipc 415
15.6.1 標識符和鍵415
15.6.2 許可權結構416
15.6.3 結構限制417
15.6.4 優點和缺點417
15.7 訊息佇列418
15.8 信號量422
15.9 共享存儲427
15.10 客戶進程-伺服器進程屬性432
15.11 小結434
習題434
第16章網路ipc:套接字437
16.1 引言437
16.2 套接字描述符437
16.3 定址439
16.3.1 位元組序440
16.3.2 地址格式441
16.3.3 地址查詢442
16.3.4 將套接字與地址綁定449
16.4 建立連線450
16.5 數據傳輸452
16.6 套接字選項464
16.7 帶外數據466
16.8 非阻塞和異步i/o 467
16.9 小結468
習題468
第17章高級進程間通信469
17.1 引言469
17.2 基於streams的管道469
17.2.1 命名的streams管道472
17.2.2 唯一連線473
17.3 unix域套接字476
17.3.1 命名unix域套接字477
17.3.2 唯一連線478
17.4 傳送檔案描述符482
17.4.1 經由基於streams的管道傳送
檔案描述符484
17.4.2 經由unix域套接字傳送檔案
描述符486
17.5 open伺服器版本1 493
17.6 open伺服器版本2 498
17.7 小結505
習題505
第18章終端i/o507
18.1 引言507
18.2 綜述507
18.3 特殊輸入字元512
18.4 獲得和設定終端屬性516
18.5 終端選項標誌516
18.6 stty命令522
18.7 波特率函式523
18.8 行控制函式524
18.9 終端標識524
18.10 規範模式529
18.11 非規範模式532
18.12 終端的視窗大小537
18.13 termcap,terminfo和curses 539
4 目錄
18.14 小結540
習題540
第19章偽終端541
19.1 引言541
19.2 概述541
19.3 打開偽終端設備544
19.3.1 基於streams的偽終端547
19.3.2 基於bsd的偽終端549
19.3.3 基於linux的偽終端551
19.4 pty_fork函式553
19.5 pty程式555
19.6 使用pty程式559
19.7 高級特性564
19.8 小結565
習題565
第20章資料庫函式館567
20.1 引言567
20.2 歷史567
20.3 函式館568
20.4 實現概述569
20.5 集中式或非集中式572
20.6 並發574
20.7 構造函式館574
20.8 原始碼575
20.9 性能598
20.10 小結600
習題601
第21章與網路印表機通信603
21.1 引言603
21.2 網路列印協定603
21.3 超文本傳輸協定605
21.4 列印假脫機技術605
21.5 原始碼607
21.6 小結644
習題645
附錄a 函式原型647
附錄b 其他原始碼677
附錄c 部分習題答案685
參考書目709
索引715

相關詞條

熱門詞條

聯絡我們