热门搜索: 中考 高考 考试 开卷17
服务电话 024-96192/23945006
 

UNIX环境高级编程(第3版英文版)(上下册)

编号:
wx1201946050
销售价:
¥145.34
(市场价: ¥169.00)
赠送积分:
145
数量:
   
商品介绍

弥足珍贵的UNIX编程“圣经”
靠前知名的UNIX和网络专家Stevens名著新版
深入讲解驱动UNIX和Linux内核的编程接口
帮助程序员写出高效和可靠的代码

20多年来,严谨的C程序员都是依靠一本书来深入了解驱动UNIX 和Linux内核的编程接口的实用知识的,这本书就是W. Richard Stevens所著的《UNIX环境不错编程》。现在,Stevens的同事Stephen Rago有效更新了这本经典著作。新的第3版支持当今靠前的系统平台,反映了近期新技术进展和很好实践,并且符合近期新的Single UNIXSpecification 第4版(SUSv4)。

Rago保留了使本书前版成为经典之作的精髓和方法。他在Stevens原著的基础上,从基础的文件、目录和进程讲起,并给诸如信号处理和终端I/O 之类的优选技术保留较大的篇幅。他还深入讨论了线程和多线程编程、使用套接字接口驱动进程间通信(IPC)等方面的内容。
这一版涵盖了70多个新接口,包括POSIX 异步I/O、旋转锁、屏障(barrier)和POSIX信号量。此外,这一版删除了许多过时的接口,保留了一些广泛使用的接口。书中几乎所有实例都已经在主流的4个平台上测试过,包括Solaris10、Mac OS X 10.6.8(Darwin 10.8.0)、FreeBSD 8.0 和Ubuntu 12.04(基于Linux 3.2)。

与前两版一样,读者仍可以通过实例学习,这些实例包括了1 万多行可下载的ISO C源代码,书中通过简明但完整的程序阐述了400多个系统调用和函数,清楚地说明它们的用法、参数和返回值。为了使读者能融会贯通,书中还提供了几个贯穿整章的案例,每个案例都根据现在的技术环境进行了全面更新。

本书帮助几代程序员写出了可靠、强大、高性能的代码。第3版根据当今主流系统进行更新,更具实用价值。

本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第3版。在本书第2版出版后的8年中,UNIX发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持前一版风格的基础上,根据新的标准对内容进行了修订和增补,反映了新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了众多应用实例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。

本书内容非常不错,概念清晰,阐述精辟,对于所有层次UNIX/Linux程序员都是一本不可或缺的参考书。

W. 理查德·史蒂文斯(W. Richard Stevens),靠前知名的UNIX 和网络专家,备受赞誉的技术作家。生前著有多部经典的传世之作,包括《UNIX 网络编程》(两卷本)、《TCP/IP 详解》(三卷本)和本书首版。
史蒂芬·A. 拉戈(Stephen A. Rago),资深UNIX 程序员,目前任NEC 美国实验室存储系统研究组研究员。之前是贝尔实验室的UNIX 系统V 版本4 的开发人员之一。著有《UNIX 系统V 网络编程》,是本书版的技术审校和第2 版的共同作者。

目录
Chapter  1. UNIX System Overview / UNIX基础知识  1
1.1  Introduction / 引言  1
1.2  UNIX Architecture / UNIX体系结构  1
1.3  Logging In / 登录  2
1.4  Files and Directories / 文件和目录  4
1.5  Input and Output / 输入和输出  8
1.6  Programs and Processes / 程序和进程  10
1.7  Error Handling / 出错处理  14
1.8  User Identification / 用户标识  16
1.9  Signals / 信号  18
1.10  Time Values / 时间值  20
1.11  System Calls and Library Functions / 系统调用和库函数  21
1.12  Summary / 小结  23
Exercises  / 习题  24
Chapter  2. UNIX Standardization and Implementations / UNIX标准及实现  25
2.1  Introduction / 引言  25
2.2  UNIX Standardization / UNIX标准化  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系统实现  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系统  35
2.4  Relationship of Standards and Implementations / 标准和实现的关系  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 / 函数sysconf、pathconf和fpathconf  42
2.5.5  Indeterminate Runtime Limits / 不确定的运行时限制  49
2.6  Options / 选项  53
2.7  Feature Test Macros / 功能测试宏  57
2.8  Primitive System Data Types / 基本系统数据类型  58
2.9  Differences Between Standards / 标准之间的冲突  58
2.10  Summary / 小结  60
Exercises  / 习题  60
Chapter  3. File I/O / 文件I/O  61
3.1  Introduction / 引言  61
3.2  File Descriptors / 文件描述符  61
3.3  open and openat Functions / 函数open和openat  62
3.4  creat Function / 函数creat  66
3.5  close Function / 函数close  66
3.6  lseek Function / 函数lseek  66
3.7  read Function / 函数read  71
3.8  write Function / 函数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 / 函数dup和dup2  79
3.13  sync, fsync, and fdatasync Functions / 函数sync、fsync和fdatasync  81
3.14  fcntl Function / 函数fcntl  82
3.15  ioctl Function / 函数ioctl  87
3.16  /dev/fd  88
3.17  Summary / 小结  90
Exercises  / 习题  90
Chapter  4. Files and Directories / 文件和目录  93
4.1  Introduction / 引言  93
4.2  stat, fstat, fstatat, and lstat Functions / 函数stat、fstat、fstatat和lstat  93
4.3  File Types / 文件类型  95
4.4  Set-User-ID and Set-Group-ID / 设置用户ID和设置组ID  98
4.5  File Access Permissions / 文件访问权限  99
4.6  Ownership of New Files and Directories / 新文件和目录的所有权  101
4.7  access and faccessat Functions / 函数access和faccessat  102
4.8  umask Function / 函数umask  104
4.9  chmod, fchmod, and fchmodat Functions / 函数chmod、fchmod和fchmodat  106
4.10  Sticky Bit / 粘着位  108
4.11  chown, fchown, fchownat, and lchown Functions / 函数chown、fchown、fchownat和lchown  109
4.12  File Size / 文件长度  111
4.13  File Truncation / 文件截断  112
4.14  File Systems / 文件系统  113
4.15  link, linkat, unlink, unlinkat, and remove Functions / 函数link、linkat、unlink、unlinkat和remove  116
4.16  rename and renameat Functions / 函数rename和renameat  119
4.17  Symbolic Links / 符号链接  120
4.18  Creating and Reading Symbolic Links / 创建和读取符号链接  123
4.19  File Times / 文件的时间  124
4.20  futimens, utimensat, and utimes Functions / 函数futimens、utimensat和utimes  126
4.21  mkdir, mkdirat, and rmdir Functions / 函数mkdir、mkdirat和rmdir  129
4.22  Reading Directories / 读目录  130
4.23  chdir, fchdir, and getcwd Functions / 函数chdir、fchdir和getcwd  135
4.24  Device Spe Files / 设备特殊文件  137
4.25  Summary of File Access Permission Bits / 文件访问权限位小结  140
4.26  Summary / 小结  140
Exercises  / 习题  141
Chapter  5. Standard I/O Library / 标准I/O库  143
5.1  Introduction / 引言  143
5.2  Streams and FILE Objects / 流和FILE对象  143
5.3  Standard Input, Standard Output, and Standard Error / 标准输入、标准输出和标准错误  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 / 标准I/O的效率  153
5.9  Binary I/O / 二进制I/O  156
5.10  Positioning a Stream / 定位流  157
5.11  Formatted I/O / 格式化I/O  159
5.12  Implementation Details / 实现细节  164
5.13  Temporary Files / 临时文件  167
5.14  Memory Streams / 内存流  171
5.15  Alternatives to Standard I/O / 标准I/O的替代软件  174
5.16  Summary / 小结  175
Exercises  / 习题  175
Chapter  6. System Data Files and Information / 系统数据文件和信息  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 / 实现区别  184
6.7  Other Data Files / 其他数据文件  185
6.8  Login Accounting / 登录账户记录  186
6.9  System Identification / 系统标识  187
6.10  Time and Date Routines / 时间和日期例程  189
6.11  Summary / 小结  196
Exercises  / 习题  196
Chapter  7. Process Environment / 进程环境  197
7.1  Introduction / 引言  197
7.2  main Function / main函数  197
7.3  Process Termination / 进程终止  198
7.4  Command-Line Arguments / 命令行参数  203
7.5  Environment List / 环境表  203
7.6  Memory Layout of a C Program / C程序的存储空间布局  204
7.7  Shared Libraries / 共享库  206
7.8  Memory Allocation / 存储空间分配  207
7.9  Environment Variables / 环境变量  210
7.10  setjmp and longjmp Functions / 函数setjmp和longjmp  213
7.11  getrlimit and setrlimit Functions / 函数getrlimit和setrlimit  220
7.12  Summary / 小结  225
Exercises  / 习题  226
Chapter  8. Process Control / 进程控制  227
8.1  Introduction / 引言  227
8.2  Process Identifiers / 进程标识  227
8.3  fork Function / 函数fork  229
8.4  vfork Function / 函数vfork  234
8.5  exit Functions / 函数exit  236
8.6  wait and waitpid Functions / 函数wait和waitpid  238
8.7  waitid Function / 函数waitid  244
8.8  wait3 and wait4 Functions / 函数wait3和wait4  245
8.9  Race Conditions / 竞争条件  245
8.10  exec Functions / 函数exec  249
8.11  Changing User IDs and Group IDs / 更改用户ID和更改组ID  255
8.12  Interpreter Files / 解释器文件  260
8.13  system Function / 函数system  264
8.14  Process Accounting / 进程会计  269
8.15  User Identification / 用户标识  275
8.16  Process Scheduling / 进程调度  276
8.17  Process Times / 进程时间  280
8.18  Summary / 小结  282
Exercises  / 习题  283
Chapter  9. Process Relationships / 进程关系  285
9.1  Introduction / 引言  285
9.2  Terminal Logins / 终端登录  285
9.3  Network Logins / 网络登录  290
9.4  Process Groups / 进程组  293
9.5  Sessions / 会话  295
9.6  Controlling Terminal / 控制终端  296
9.7  tcgetpgrp, tcsetpgrp, and tcgetsid Functions / 函数tcgetpgrp、tcsetpgrp和tcgetsid  298
9.8  Job Control / 作业控制  299
9.9  Shell Execution of Programs / Shell执行程序  303
9.10  Orphaned Process Groups / 孤儿进程组  307
9.11  FreeBSD Implementation / FreeBSD实现  310
9.12  Summary / 小结  312
Exercises  / 习题  312
Chapter  10. Signals / 信号  313
10.1  Introduction / 引言  313
10.2  Signal Concepts / 信号概念  313
10.3  signal Function / 函数signal  323
10.4  Unreliable Signals / 不可靠的信号  326
10.5  Interrupted System Calls / 中断的系统调用  327
10.6  Reentrant Functions / 可重入函数  330
10.7  SIGCLD Semantics / SIGCLD语义  332
10.8  Reliable-Signal Terminology and Semantics / 可靠信号术语和语义  335
10.9  kill and raise Functions / 函数kill和raise  336
10.10  alarm and pause Functions / 函数alarm和pause  338
10.11  Signal Sets / 信号集  344
10.12  sigprocmask Function / 函数sigprocmask  346
10.13  sigpending Function / 函数sigpending  347
10.14  sigaction Function / 函数sigaction  349
10.15  sigsetjmp and siglongjmp Functions / 函数sigsetjmp和siglongjmp  355
10.16  sigsuspend Function / 函数sigsuspend  359
10.17  abort Function / 函数abort  365
10.18  system Function / 函数system  367
10.19  sleep, nanosleep, and clock_nanosleep Functions / 函数sleep、nanosleep和clock_nanosleep  373
10.20  sigqueue Function / 函数sigqueue  376
10.21  Job-Control Signals / 作业控制信号  377
10.22  Signal Names and Numbers / 信号名和编号  379
10.23  Summary / 小结  381
Exercises  / 习题  381
Chapter  11. Threads / 线程  383
11.1  Introduction / 引言  383
11.2  Thread Concepts / 线程概念  383
11.3  Thread Identification / 线程标识  384
11.4  Thread Creation / 线程创建  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 / 函数pthread_mutex_timedlock  407
11.6.4  Reader-Writer Locks / 读写锁  409
11.6.5  Reader-Writer Locking with Timeouts / 带有超时的读写锁  413
11.6.6  Condition Variables / 条件变量  413
11.6.7  Spin Locks / 自旋锁  417
11.6.8  Barriers / 屏障  418
11.7  Summary / 小结  422
Exercises  / 习题  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 / 线程特定数据  446
12.7  Cancel Options / 取消选项  451
12.8  Threads and Signals / 线程和信号  453
12.9  Threads and fork / 线程和fork  457
12.10  Threads and I/O / 线程和I/O  461
12.11  Summary / 小结  462
Exercises  / 习题  462
Chapter  13. Daemon Processes / 守护进程  463
13.1  Introduction / 引言  463
13.2  Daemon Characteristics / 守护进程的特征  463
13.3  Coding Rules / 编程规则  466
13.4  Error Logging / 出错记录  469
13.5  Single-Instance Daemons / 单实例守护进程  473
13.6  Daemon Conventions / 守护进程的惯例  474
13.7  Client-Server Model / 客户进程-服务器进程模型  479
13.8  Summary / 小结  480
Exercises  / 习题  480
Chapter  14. Advanced I/O / 不错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多路转接  500
14.4.1  select and pselect Functions / 函数select和pselect  502
14.4.2  poll Function / 函数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 / 函数readv和writev  521
14.7  readn and writen Functions / 函数readn和writen  523
14.8  Memory-Mapped I/O / 存储映射I/O  525
14.9  Summary / 小结  531
Exercises  / 习题  532
Chapter  15. Interprocess Communication / 进程间通信  533
15.1  Introduction / 引言  533
15.2  Pipes / 管道  534
15.3  popen and pclose Functions / 函数popen和pclose  541
15.4  Coprocesses / 协同进程  548
15.5  FIFOs  552
15.6  XSI IPC  556
15.6.1  Identifiers and Keys / 标识符和键  556
15.6.2  Permission Structure / 权限结构  558
15.6.3  Configuration Limits / 结构限制  559
15.6.4  Advantages and Disadvantages / 优点和缺点  559
15.7  Message Queues / 消息队列  561
15.8  Semaphores / 信号量  565
15.9  Shared Memory / 共享存储  571
15.10  POSIX Semaphores / POSIX信号量  579
15.11  Client-Server Properties / 客户进程-服务器进程属性  585
15.12  Summary / 小结  587
Exercises  / 习题  587
Chapter  16. Network IPC: Sockets / 网络IPC:套接字  589
16.1  Introduction / 引言  589
16.2  Socket Descriptors / 套接字描述符  590
16.3  Addressing / 寻址  593
16.3.1  Byte Ordering / 字节序  593
16.3.2  Address Formats / 地址格式  595
16.3.3  Address Lookup / 地址查询  597
16.3.4  Associating Addresses with Sockets / 将套接字与地址关联  604
16.4  Connection Establishment / 建立连接  605
16.5  Data Transfer / 数据传输  610
16.6  Socket Options / 套接字选项  623
16.7  Out-of-Band Data / 带外数据  626
16.8  Nonblocking and Asynchronous I/O / 非阻塞和异步I/O  627
16.9  Summary / 小结  628
Exercises  / 习题  628
Chapter  17. Advanced IPC / 不错进程间通信  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 / 打开服务器进程第 1版  653
17.6  An Open Server, Version 2 / 打开服务器进程第 2版  659
17.7  Summary / 小结  669
Exercises  / 习题  670
Chapter  18. Terminal I/O / 终端I/O  671
18.1  Introduction / 引言  671
18.2  Overview / 概述  671
18.3  Spe Input Characters / 特殊输入字符  678
18.4  Getting and Setting Terminal Attributes / 获得和设置终端属性  683
18.5  Terminal Option Flags / 终端选项标志  683
18.6  stty Command / stty命令  691
18.7  Baud Rate Functions / 波特率函数  692
18.8  Line Control Functions / 行控制函数  693
18.9  Terminal Identification / 终端标识  694
18.10  Canonical Mode / 规范模式  700
18.11  Noncanonical Mode / 非规范模式  703
18.12  Terminal Window Size / 终端窗口大小  710
18.13  termcap, terminfo, and curses / termcap、terminfo和curses  712
18.14  Summary / 小结  713
Exercises  / 习题  713
Chapter  19. Pseudo Terminals / 伪终端  715
19.1  Introduction / 引言  715
19.2  Overview / 概述  715
19.3  Opening Pseudo-Terminal Devices / 打开伪终端设备  722
19.4  pty_fork Function / 函数pty_fork  726
19.5  pty Program / pty程序  729
19.6  Using the pty Program / 使用pty程序  733
19.7  Advanced Features / 不错特性  740
19.8  Summary / 小结  741
Exercises  / 习题  742
Chapter  20. A Database Library / 数据库函数库  743
20.1  Introduction / 引言  743
20.2  History / 历史  743
20.3  The Library / 函数库  744
20.4  Implementation Overview / 实现概述  746
20.5  Centralized or Decentralized / 集中式还是非集中式  750
20.6  Concurrency / 并发  752
20.7  Building the Library / 构造函数库  753
20.8  Source Code / 源代码  753
20.9  Performance / 性能  781
20.10  Summary / 小结  786
Exercises  / 习题  787
Chapter  21. Communicating with a Network Printer / 与网络打印机通信  789
21.1  Introduction / 引言  789
21.2  The Internet Printing Protocol / 网络打印协议  789
21.3  The Hypertext Transfer Protocol / 超文本传输协议HTTP  792
21.4  Printer Spooling / 打印假脱机技术  793
21.5  Source Code / 源代码  795
21.6  Summary / 小结  843
Exercises  / 习题  843
Appendix  A. Function Prototypes / 函数原型  845
Appendix  B. Miscellaneous Source Code / 其他源代码  895
B.1  Our Header File / 本书使用的头文件  895
B.2  Standard Error Routines / 标准出错例程  898
Appendix  C. Solutions to Selected Exercises / 部分习题答案  905
Bibliography  / 参考书目  947

“本书 版连同Stevens所著的系列网络技术书籍,被认可为很好的、匠心独具的名著,成为极其畅销的作品……总之,这是一本弥足珍贵的经典著作的更新版。”
—Dennis Ritchie,图灵奖得主,UNIX操作系统和C 语言之父

“对任何一个严谨的、专业的UNIX系统程序员而言,本书都是不可或缺的参考书。Rago更新和扩展了Stevens的经典著作,并保持了原书的风貌。书中利用清晰的实例演示了API的使用过程,还提到了许多在不同UNIX 系统实现上编程时需要注意的陷阱,并指出如何使用相关的标准(如POSIX 1003.12004版和Single UNIX Specification第3版)来避开这些陷阱。”
—Andrew Josey, The Open Group标准部门主管,POSIX 1003.1标准工作组主席

“UNIX 编程经典之一。”
—Eric S. Raymond,《UNIX编程艺术》作者

“Stephen Rago的更新版本对使用众多UNIX及相关操作系统环境的广大专业用户来说是一个迟来的喜讯。这一版不仅删除了过时的接口,吸纳了较新的开发接口,还根据UNIX及类UNIX操作系统环境的几种主流实现发布的新版本全面更新了所有主题、实例和应用的背景。难能可贵的是,这一版本还保持了 版的风格和品位。”
—Mukesh Kacker,Pronto Networks公司联合创始人和前任CTO

“本书对任何在UNIX 系统上编写程序的开发人员来说都是很好重要的参考书。当我想要了解或者重新回顾各种系统接口时,这本书是优选的求助工具。Stephen Rago成功地修订了本书,使其与新的操作系统(如GNU/Linux 和苹果的OS X)相容,并保持了 版易读和实用的特质。它将一直摆放在我桌上触手可及的位置。”
—Benjamin Kuperman博士,斯沃斯莫尔学院

“这是每一位严谨的UNIX C程序员都应阅读的书籍。它深入、全面、清晰的解释是无可匹敌的。”
—UniForum Monthly

“从W. Richard Stevens的这本书中可以找到更多易于理解的、详尽的UNIX系统内部细节。这本书包含了大量实际的例子,对系统编程工作很好有益。”
—RS/Magazine

商品参数
基本信息
出版社 人民邮电出版社
ISBN 9787115515919
条码 9787115515919
编者 [美] W. 理查德·史蒂文斯(W. Richard Stevens)史蒂芬·A. 拉戈( Stephen A. Rago) 
译者 --
出版年月 2018-02-01 00:00:00.0
开本 其他
装帧 平装
页数 953
字数 129.4
版次 2
印次 1
纸张 一般胶版纸
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]