本書是被譽(yù)為UNIX編程圣經(jīng)的Advanced Programming in the UNIX Environment一書的第3版。在本書第2版出版后的8年中,UNIX發(fā)生了巨大的變化,特別是影響UNIX編程接口的有關(guān)標(biāo)準(zhǔn)變化很大。本書在保持前一版風(fēng)格的基礎(chǔ)上,根據(jù)新的標(biāo)準(zhǔn)對(duì)內(nèi)容進(jìn)行了修訂和增補(bǔ),反映了新的技術(shù)發(fā)展。書中除了介紹UNIX文件和目錄、標(biāo)準(zhǔn)I/O庫、系統(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ù)庫函數(shù)庫以及如何與網(wǎng)絡(luò)打印機(jī)通信等。此外,還在附錄中給出了函數(shù)原型和部分習(xí)題的答案。 本書內(nèi)容權(quán)威,概念清晰,闡述精辟,對(duì)于所有層次UNIX/Linux程序員都是一本不可或缺的參考書。
彌足珍貴的UNIX編程圣經(jīng) 國際知名的UNIX和網(wǎng)絡(luò)專家Stevens名著新版 深入講解驅(qū)動(dòng)UNIX和Linux內(nèi)核的編程接口 幫助程序員寫出高效和可靠的代碼 20多年來,嚴(yán)謹(jǐn)?shù)腃程序員都是依靠一本書來深入了解驅(qū)動(dòng)UNIX 和Linux內(nèi)核的編程接口的實(shí)用知識(shí)的,這本書就是W. Richard Stevens所著的《UNIX環(huán)境高級(jí)編程》。現(xiàn)在,Stevens的同事Stephen Rago徹底更新了這本經(jīng)典著作。新的第3版支持當(dāng)今領(lǐng)先的系統(tǒng)平臺(tái),反映了*技術(shù)進(jìn)展和*實(shí)踐,并且符合*的Single UNIXSpecification 第4版(SUSv4)。 Rago保留了使本書前版成為經(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 異步I/O、旋轉(zhuǎn)鎖、屏障(barrier)和POSIX信號(hào)量。此外,這一版刪除了許多過時(shí)的接口,保留了一些廣泛使用的接口。書中幾乎所有實(shí)例都已經(jīng)在主流的4個(gè)平臺(tái)上測(cè)試過,包括Solaris10、Mac OS X 10.6.8(Darwin 10.8.0)、FreeBSD 8.0 和Ubuntu 12.04(基于Linux 3.2)。 與前兩版一樣,讀者仍可以通過實(shí)例學(xué)習(xí),這些實(shí)例包括了1 萬多行可下載的ISO C源代碼,書中通過簡(jiǎn)明但完整的程序闡述了400多個(gè)系統(tǒng)調(diào)用和函數(shù),清楚地說明它們的用法、參數(shù)和返回值。為了使讀者能融會(huì)貫通,書中還提供了幾個(gè)貫穿整章的案例,每個(gè)案例都根據(jù)現(xiàn)在的技術(shù)環(huán)境進(jìn)行了全面更新。 本書幫助幾代程序員寫出了可靠、強(qiáng)大、高性能的代碼。第3版根據(jù)當(dāng)今主流系統(tǒng)進(jìn)行更新,更具實(shí)用價(jià)值。
W. 理查德·史蒂文斯(W. Richard Stevens),國際知名的UNIX 和網(wǎng)絡(luò)專家,備受贊譽(yù)的技術(shù)作家。生前著有多部經(jīng)典的傳世之作,包括《UNIX 網(wǎng)絡(luò)編程》(兩卷本)、《TCP/IP 詳解》(三卷本)和本書首版。 史蒂芬·A. 拉戈(Stephen A. Rago),資深UNIX 程序員,目前任NEC 美國實(shí)驗(yàn)室存儲(chǔ)系統(tǒng)研究組研究員。之前是貝爾實(shí)驗(yàn)室的UNIX 系統(tǒng)V 版本4 的開發(fā)人員之一。著有《UNIX 系統(tǒng)V 網(wǎng)絡(luò)編程》,是本書第1版的技術(shù)審校和第2 版的共同作者。
目錄
Chapter 1. UNIX System Overview / UNIX基礎(chǔ)知識(shí) 1
1.1 Introduction / 引言 1
1.2 UNIX Architecture / UNIX體系結(jié)構(gòu) 1
1.3 Logging In / 登錄 2
1.4 Files and Directories / 文件和目錄 4
1.5 Input and Output / 輸入和輸出 8
1.6 Programs and Processes / 程序和進(jìn)程 10
1.7 Error Handling / 出錯(cuò)處理 14
1.8 User Identification / 用戶標(biāo)識(shí) 16
1.9 Signals / 信號(hào) 18
1.10 Time Values / 時(shí)間值 20
1.11 System Calls and Library Functions / 系統(tǒng)調(diào)用和庫函數(shù) 21
1.12 Summary / 小結(jié) 23
Exercises / 習(xí)題 24
Chapter 2. UNIX Standardization and Implementations / UNIX標(biāo)準(zhǔn)及實(shí)現(xiàn) 25
2.1 Introduction / 引言 25
2.2 UNIX Standardization / UNIX標(biāo)準(zhǔn)化 25
2.2.1 ISO C 25
2.2.2 IEEE POSIX 26
2.2.3 The Single UNIX Specification 30
2.2.4 FIPS 32
2.3 UNIX System Implementations / UNIX系統(tǒng)實(shí)現(xiàn) 33
2.3.1 UNIX System V Release 4 / SVR4 33
2.3.2 4.4BSD 34
2.3.3 FreeBSD 34
2.3.4 Linux 35
2.3.5 Mac OS X 35
2.3.6 Solaris 35
2.3.7 Other UNIX Systems / 其他UNIX系統(tǒng) 35
2.4 Relationship of Standards and Implementations / 標(biāo)準(zhǔn)和實(shí)現(xiàn)的關(guān)系 36
2.5 Limits / 限制 36
2.5.1 ISO C Limits / ISO C限制 37
2.5.2 POSIX Limits / POSIX限制 38
2.5.3 XSI Limits / XSI限制 41
2.5.4 sysconf, pathconf, and fpathconf Functions / 函數(shù)sysconf、pathconf和fpathconf 42
2.5.5 Indeterminate Runtime Limits / 不確定的運(yùn)行時(shí)限制 49
2.6 Options / 選項(xiàng) 53
2.7 Feature Test Macros / 功能測(cè)試宏 57
2.8 Primitive System Data Types / 基本系統(tǒng)數(shù)據(jù)類型 58
2.9 Differences Between Standards / 標(biāo)準(zhǔn)之間的沖突 58
2.10 Summary / 小結(jié) 60
Exercises / 習(xí)題 60
Chapter 3. File I/O / 文件I/O 61
3.1 Introduction / 引言 61
3.2 File Descriptors / 文件描述符 61
3.3 open and openat Functions / 函數(shù)open和openat 62
3.4 creat Function / 函數(shù)creat 66
3.5 close Function / 函數(shù)close 66
3.6 lseek Function / 函數(shù)lseek 66
3.7 read Function / 函數(shù)read 71
3.8 write Function / 函數(shù)write 72
3.9 I/O Efficiency / I/O的效率 72
3.10 File Sharing / 文件共享 74
3.11 Atomic Operations / 原子操作 77
3.12 dup and dup2 Functions / 函數(shù)dup和dup2 79
3.13 sync, fsync, and fdatasync Functions / 函數(shù)sync、fsync和fdatasync 81
3.14 fcntl Function / 函數(shù)fcntl 82
3.15 ioctl Function / 函數(shù)ioctl 87
3.16 /dev/fd 88
3.17 Summary / 小結(jié) 90
Exercises / 習(xí)題 90
Chapter 4. Files and Directories / 文件和目錄 93
4.1 Introduction / 引言 93
4.2 stat, fstat, fstatat, and lstat Functions / 函數(shù)stat、fstat、fstatat和lstat 93
4.3 File Types / 文件類型 95
4.4 Set-User-ID and Set-Group-ID / 設(shè)置用戶ID和設(shè)置組ID 98
4.5 File Access Permissions / 文件訪問權(quán)限 99
4.6 Ownership of New Files and Directories / 新文件和目錄的所有權(quán) 101
4.7 access and faccessat Functions / 函數(shù)access和faccessat 102
4.8 umask Function / 函數(shù)umask 104
4.9 chmod, fchmod, and fchmodat Functions / 函數(shù)chmod、fchmod和fchmodat 106
4.10 Sticky Bit / 粘著位 108
4.11 chown, fchown, fchownat, and lchown Functions / 函數(shù)chown、fchown、fchownat和lchown 109
4.12 File Size / 文件長度 111
4.13 File Truncation / 文件截?cái)唷?12
4.14 File Systems / 文件系統(tǒng) 113
4.15 link, linkat, unlink, unlinkat, and remove Functions / 函數(shù)link、linkat、unlink、unlinkat和remove 116
4.16 rename and renameat Functions / 函數(shù)rename和renameat 119
4.17 Symbolic Links / 符號(hào)鏈接 120
4.18 Creating and Reading Symbolic Links / 創(chuàng)建和讀取符號(hào)鏈接 123
4.19 File Times / 文件的時(shí)間 124
4.20 futimens, utimensat, and utimes Functions / 函數(shù)futimens、utimensat和utimes 126
4.21 mkdir, mkdirat, and rmdir Functions / 函數(shù)mkdir、mkdirat和rmdir 129
4.22 Reading Directories / 讀目錄 130
4.23 chdir, fchdir, and getcwd Functions / 函數(shù)chdir、fchdir和getcwd 135
4.24 Device Special Files / 設(shè)備特殊文件 137
4.25 Summary of File Access Permission Bits / 文件訪問權(quán)限位小結(jié) 140
4.26 Summary / 小結(jié) 140
Exercises / 習(xí)題 141
Chapter 5. Standard I/O Library / 標(biāo)準(zhǔn)I/O庫 143
5.1 Introduction / 引言 143
5.2 Streams and FILE Objects / 流和FILE對(duì)象 143
5.3 Standard Input, Standard Output, and Standard Error / 標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤 145
5.4 Buffering / 緩沖 145
5.5 Opening a Stream / 打開流 148
5.6 Reading and Writing a Stream / 讀和寫流 150
5.7 Line-at-a-Time I/O / 每次一行I/O 152
5.8 Standard I/O Efficiency / 標(biāo)準(zhǔn)I/O的效率 153
5.9 Binary I/O / 二進(jìn)制I/O 156
5.10 Positioning a Stream / 定位流 157
5.11 Formatted I/O / 格式化I/O 159
5.12 Implementation Details / 實(shí)現(xiàn)細(xì)節(jié) 164
5.13 Temporary Files / 臨時(shí)文件 167
5.14 Memory Streams / 內(nèi)存流 171
5.15 Alternatives to Standard I/O / 標(biāo)準(zhǔn)I/O的替代軟件 174
5.16 Summary / 小結(jié) 175
Exercises / 習(xí)題 175
Chapter 6. System Data Files and Information / 系統(tǒng)數(shù)據(jù)文件和信息 177
6.1 Introduction / 引言 177
6.2 Password File / 口令文件 177
6.3 Shadow Passwords / 陰影口令 181
6.4 Group File / 組文件 182
6.5 Supplementary Group IDs / 附屬組ID 183
6.6 Implementation Differences / 實(shí)現(xiàn)區(qū)別 184
6.7 Other Data Files / 其他數(shù)據(jù)文件 185
6.8 Login Accounting / 登錄賬戶記錄 186
6.9 System Identification / 系統(tǒng)標(biāo)識(shí) 187
6.10 Time and Date Routines / 時(shí)間和日期例程 189
6.11 Summary / 小結(jié) 196
Exercises / 習(xí)題 196
Chapter 7. Process Environment / 進(jìn)程環(huán)境 197
7.1 Introduction / 引言 197
7.2 main Function / main函數(shù) 197
7.3 Process Termination / 進(jìn)程終止 198
7.4 Command-Line Arguments / 命令行參數(shù) 203
7.5 Environment List / 環(huán)境表 203
7.6 Memory Layout of a C Program / C程序的存儲(chǔ)空間布局 204
7.7 Shared Libraries / 共享庫 206
7.8 Memory Allocation / 存儲(chǔ)空間分配 207
7.9 Environment Variables / 環(huán)境變量 210
7.10 setjmp and longjmp Functions / 函數(shù)setjmp和longjmp 213
7.11 getrlimit and setrlimit Functions / 函數(shù)getrlimit和setrlimit 220
7.12 Summary / 小結(jié) 225
Exercises / 習(xí)題 226
Chapter 8. Process Control / 進(jìn)程控制 227
8.1 Introduction / 引言 227
8.2 Process Identifiers / 進(jìn)程標(biāo)識(shí) 227
8.3 fork Function / 函數(shù)fork 229
8.4 vfork Function / 函數(shù)vfork 234
8.5 exit Functions / 函數(shù)exit 236
8.6 wait and waitpid Functions / 函數(shù)wait和waitpid 238
8.7 waitid Function / 函數(shù)waitid 244
8.8 wait3 and wait4 Functions / 函數(shù)wait3和wait4 245
8.9 Race Conditions / 競(jìng)爭(zhēng)條件 245
8.10 exec Functions / 函數(shù)exec 249
8.11 Changing User IDs and Group IDs / 更改用戶ID和更改組ID 255
8.12 Interpreter Files / 解釋器文件 260
8.13 system Function / 函數(shù)system 264
8.14 Process Accounting / 進(jìn)程會(huì)計(jì) 269
8.15 User Identification / 用戶標(biāo)識(shí) 275
8.16 Process Scheduling / 進(jìn)程調(diào)度 276
8.17 Process Times / 進(jìn)程時(shí)間 280
8.18 Summary / 小結(jié) 282
Exercises / 習(xí)題 283
Chapter 9. Process Relationships / 進(jìn)程關(guān)系 285
9.1 Introduction / 引言 285
9.2 Terminal Logins / 終端登錄 285
9.3 Network Logins / 網(wǎng)絡(luò)登錄 290
9.4 Process Groups / 進(jìn)程組 293
9.5 Sessions / 會(huì)話 295
9.6 Controlling Terminal / 控制終端 296
9.7 tcgetpgrp, tcsetpgrp, and tcgetsid Functions / 函數(shù)tcgetpgrp、tcsetpgrp和tcgetsid 298
9.8 Job Control / 作業(yè)控制 299
9.9 Shell Execution of Programs / Shell執(zhí)行程序 303
9.10 Orphaned Process Groups / 孤兒進(jìn)程組 307
9.11 FreeBSD Implementation / FreeBSD實(shí)現(xiàn) 310
9.12 Summary / 小結(jié) 312
Exercises / 習(xí)題 312
Chapter 10. Signals / 信號(hào) 313
10.1 Introduction / 引言 313
10.2 Signal Concepts / 信號(hào)概念 313
10.3 signal Function / 函數(shù)signal 323
10.4 Unreliable Signals / 不可靠的信號(hào) 326
10.5 Interrupted System Calls / 中斷的系統(tǒng)調(diào)用 327
10.6 Reentrant Functions / 可重入函數(shù) 330
10.7 SIGCLD Semantics / SIGCLD語義 332
10.8 Reliable-Signal Terminology and Semantics / 可靠信號(hào)術(shù)語和語義 335
10.9 kill and raise Functions / 函數(shù)kill和raise 336
10.10 alarm and pause Functions / 函數(shù)alarm和pause 338
10.11 Signal Sets / 信號(hào)集 344
10.12 sigprocmask Function / 函數(shù)sigprocmask 346
10.13 sigpending Function / 函數(shù)sigpending 347
10.14 sigaction Function / 函數(shù)sigaction 349
10.15 sigsetjmp and siglongjmp Functions / 函數(shù)sigsetjmp和siglongjmp 355
10.16 sigsuspend Function / 函數(shù)sigsuspend 359
10.17 abort Function / 函數(shù)abort 365
10.18 system Function / 函數(shù)system 367
10.19 sleep, nanosleep, and clock_nanosleep Functions / 函數(shù)sleep、nanosleep和clock_nanosleep 373
10.20 sigqueue Function / 函數(shù)sigqueue 376
10.21 Job-Control Signals / 作業(yè)控制信號(hào) 377
10.22 Signal Names and Numbers / 信號(hào)名和編號(hào) 379
10.23 Summary / 小結(jié) 381
Exercises / 習(xí)題 381
Chapter 11. Threads / 線程 383
11.1 Introduction / 引言 383
11.2 Thread Concepts / 線程概念 383
11.3 Thread Identification / 線程標(biāo)識(shí) 384
11.4 Thread Creation / 線程創(chuàng)建 385
11.5 Thread Termination / 線程終止 388
11.6 Thread Synchronization / 線程同步 397
11.6.1 Mutexes / 互斥量 399
11.6.2 Deadlock Avoidance / 避免死鎖 402
11.6.3 pthread_mutex_timedlock Function / 函數(shù)pthread_mutex_timedlock 407
11.6.4 Reader-Writer Locks / 讀寫鎖 409
11.6.5 Reader-Writer Locking with Timeouts / 帶有超時(shí)的讀寫鎖 413
11.6.6 Condition Variables / 條件變量 413
11.6.7 Spin Locks / 自旋鎖 417
11.6.8 Barriers / 屏障 418
11.7 Summary / 小結(jié) 422
Exercises / 習(xí)題 422
Chapter 12. Thread Control / 線程控制 425
12.1 Introduction / 引言 425
12.2 Thread Limits / 線程限制 425
12.3 Thread Attributes / 線程屬性 426
12.4 Synchronization Attributes / 同步屬性 430
12.4.1 Mutex Attributes / 互斥量屬性 430
12.4.2 Reader-Writer Lock Attributes / 讀寫鎖屬性 439
12.4.3 Condition Variable Attributes / 條件變量屬性 440
12.4.4 Barrier Attributes / 屏障屬性 441
12.5 Reentrancy / 重入 442
12.6 Thread-Specific Data / 線程特定數(shù)據(jù) 446
12.7 Cancel Options / 取消選項(xiàng) 451
12.8 Threads and Signals / 線程和信號(hào) 453
12.9 Threads and fork / 線程和fork 457
12.10 Threads and I/O / 線程和I/O 461
12.11 Summary / 小結(jié) 462
Exercises / 習(xí)題 462
Chapter 13. Daemon Processes / 守護(hù)進(jìn)程 463
13.1 Introduction / 引言 463
13.2 Daemon Characteristics / 守護(hù)進(jìn)程的特征 463
13.3 Coding Rules / 編程規(guī)則 466
13.4 Error Logging / 出錯(cuò)記錄 469
13.5 Single-Instance Daemons / 單實(shí)例守護(hù)進(jìn)程 473
13.6 Daemon Conventions / 守護(hù)進(jìn)程的慣例 474
13.7 Client-Server Model / 客戶進(jìn)程-服務(wù)器進(jìn)程模型 479
13.8 Summary / 小結(jié) 480
Exercises / 習(xí)題 480
Chapter 14. Advanced I/O / 高級(jí)I/O 481
14.1 Introduction / 引言 481
14.2 Nonblocking I/O / 非阻塞I/O 481
14.3 Record Locking / 記錄鎖 485
14.4 I/O Multiplexing / I/O多路轉(zhuǎn)接 500
14.4.1 select and pselect Functions / 函數(shù)select和pselect 502
14.4.2 poll Function / 函數(shù)poll 506
14.5 Asynchronous I/O / 異步I/O 509
14.5.1 System V Asynchronous I/O / System V異步I/O 510
14.5.2 BSD Asynchronous I/O / BSD異步I/O 510
14.5.3 POSIX Asynchronous I/O / POSIX異步I/O 511
14.6 readv and writev Functions / 函數(shù)readv和writev 521
14.7 readn and writen Functions / 函數(shù)readn和writen 523
14.8 Memory-Mapped I/O / 存儲(chǔ)映射I/O 525
14.9 Summary / 小結(jié) 531
Exercises / 習(xí)題 532
Chapter 15. Interprocess Communication / 進(jìn)程間通信 533
15.1 Introduction / 引言 533
15.2 Pipes / 管道 534
15.3 popen and pclose Functions / 函數(shù)popen和pclose 541
15.4 Coprocesses / 協(xié)同進(jìn)程 548
15.5 FIFOs 552
15.6 XSI IPC 556
15.6.1 Identifiers and Keys / 標(biāo)識(shí)符和鍵 556
15.6.2 Permission Structure / 權(quán)限結(jié)構(gòu) 558
15.6.3 Configuration Limits / 結(jié)構(gòu)限制 559
15.6.4 Advantages and Disadvantages / 優(yōu)點(diǎn)和缺點(diǎn) 559
15.7 Message Queues / 消息隊(duì)列 561
15.8 Semaphores / 信號(hào)量 565
15.9 Shared Memory / 共享存儲(chǔ) 571
15.10 POSIX Semaphores / POSIX信號(hào)量 579
15.11 Client-Server Properties / 客戶進(jìn)程-服務(wù)器進(jìn)程屬性 585
15.12 Summary / 小結(jié) 587
Exercises / 習(xí)題 587
Chapter 16. Network IPC: Sockets / 網(wǎng)絡(luò)IPC:套接字 589
16.1 Introduction / 引言 589
16.2 Socket Descriptors / 套接字描述符 590
16.3 Addressing / 尋址 593
16.3.1 Byte Ordering / 字節(jié)序 593
16.3.2 Address Formats / 地址格式 595
16.3.3 Address Lookup / 地址查詢 597
16.3.4 Associating Addresses with Sockets / 將套接字與地址關(guān)聯(lián) 604
16.4 Connection Establishment / 建立連接 605
16.5 Data Transfer / 數(shù)據(jù)傳輸 610
16.6 Socket Options / 套接字選項(xiàng) 623
16.7 Out-of-Band Data / 帶外數(shù)據(jù) 626
16.8 Nonblocking and Asynchronous I/O / 非阻塞和異步I/O 627
16.9 Summary / 小結(jié) 628
Exercises / 習(xí)題 628
Chapter 17. Advanced IPC / 高級(jí)進(jìn)程間通信 629
17.1 Introduction / 引言 629
17.2 UNIX Domain Sockets / UNIX域套接字 629
17.3 Unique Connections / 唯一連接 635
17.4 Passing File Descriptors / 傳送文件描述符 642
17.5 An Open Server, Version 1 / 打開服務(wù)器進(jìn)程第 1版 653
17.6 An Open Server, Version 2 / 打開服務(wù)器進(jìn)程第 2版 659
17.7 Summary / 小結(jié) 669
Exercises / 習(xí)題 670
Chapter 18. Terminal I/O / 終端I/O 671
18.1 Introduction / 引言 671
18.2 Overview / 概述 671
18.3 Special Input Characters / 特殊輸入字符 678
18.4 Getting and Setting Terminal Attributes / 獲得和設(shè)置終端屬性 683
18.5 Terminal Option Flags / 終端選項(xiàng)標(biāo)志 683
18.6 stty Command / stty命令 691
18.7 Baud Rate Functions / 波特率函數(shù) 692
18.8 Line Control Functions / 行控制函數(shù) 693
18.9 Terminal Identification / 終端標(biāo)識(shí) 694
18.10 Canonical Mode / 規(guī)范模式 700
18.11 Noncanonical Mode / 非規(guī)范模式 703
18.12 Terminal Window Size / 終端窗口大小 710
18.13 termcap, terminfo, and curses / termcap、terminfo和curses 712
18.14 Summary / 小結(jié) 713
Exercises / 習(xí)題 713
Chapter 19. Pseudo Terminals / 偽終端 715
19.1 Introduction / 引言 715
19.2 Overview / 概述 715
19.3 Opening Pseudo-Terminal Devices / 打開偽終端設(shè)備 722
19.4 pty_fork Function / 函數(shù)pty_fork 726
19.5 pty Program / pty程序 729
19.6 Using the pty Program / 使用pty程序 733
19.7 Advanced Features / 高級(jí)特性 740
19.8 Summary / 小結(jié) 741
Exercises / 習(xí)題 742
Chapter 20. A Database Library / 數(shù)據(jù)庫函數(shù)庫 743
20.1 Introduction / 引言 743
20.2 History / 歷史 743
20.3 The Library / 函數(shù)庫 744
20.4 Implementation Overview / 實(shí)現(xiàn)概述 746
20.5 Centralized or Decentralized / 集中式還是非集中式 750
20.6 Concurrency / 并發(fā) 752
20.7 Building the Library / 構(gòu)造函數(shù)庫 753
20.8 Source Code / 源代碼 753
20.9 Performance / 性能 781
20.10 Summary / 小結(jié) 786
Exercises / 習(xí)題 787
Chapter 21. Communicating with a Network Printer / 與網(wǎng)絡(luò)打印機(jī)通信 789
21.1 Introduction / 引言 789
21.2 The Internet Printing Protocol / 網(wǎng)絡(luò)打印協(xié)議 789
21.3 The Hypertext Transfer Protocol / 超文本傳輸協(xié)議HTTP 792
21.4 Printer Spooling / 打印假脫機(jī)技術(shù) 793
21.5 Source Code / 源代碼 795
21.6 Summary / 小結(jié) 843
Exercises / 習(xí)題 843
Appendix A. Function Prototypes / 函數(shù)原型 845
Appendix B. Miscellaneous Source Code / 其他源代碼 895
B.1 Our Header File / 本書使用的頭文件 895
B.2 Standard Error Routines / 標(biāo)準(zhǔn)出錯(cuò)例程 898
Appendix C. Solutions to Selected Exercises / 部分習(xí)題答案 905
Bibliography / 參考書目 947