kindle电子书

资源下载,尽在我的书库!
首页 > kindle电子书库 > 工业|计算机|互联网 > 电子、计算机、网络

UNIX环境高级编程(第3版)(异步图书)

  • 作者: 多作者
  • 体积:44.54 MB
  • 语言:中文
  • 日期:2018-09-10
  • 推荐:

简介:UNIX环境高级编程(第3版)(异步图书)

电子书详细介绍

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

编辑推荐

 

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

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

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

作者简介

W. Richard Stevens,国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有多部经典的传世之作,包括《UNIX网络编程》(两卷本)、《TCP/IP详解》(三卷本)和本书第 1版。 

Stephen A. Rago,UNIX程序员,目前任NEC美国实验室存储系统集团研究员。之前是贝尔实验室的UNIX系统V版本4的开发人员之一。著有《UNIX系统V网络编程》,并曾担任本书第 1版的技术审校和第 2版的共同作者。 

戚正伟,博士,上海交通大学软件学院副教授,微软亚洲研究院(2008)和美国CMU大学(2011-2012)访问学者。研究方向为系统软件和程序分析,著有《New Blue Pill深入理解硬件虚拟机》和《嵌入式GIS开发及应用》等书。 

张亚英,博士,同济大学电子与信息工程学院计算机系副教授,研究方向为分布与移动计算、嵌入式系统以及系统软件等。 

尤晋元,上海交通大学计算机科学及工程系教授、博士生导师。在科研方面,主要从事操作系统和分布对象计算技术方面的研究。在教学方面,长期承担操作系统及分布计算等课程的教学工作。主编和翻译了多本操作系统教材和参考书,包括《UNIX操作系统教程》、《UNIX高 级编程技术》、《UNIX环境高 级编程》和《操作系统:设计与实现》等。

目录

第1章UNIX基础知识1 
1.1引言1 
1.2UNIX体系结构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.2UNIX标准化20 
2.2.1ISOC20 
2.2.2IEEEPOSIX21 
2.2.3SingleUNIXSpecification25 
2.2.4FIPS26 
2.3UNIX系统实现26 
2.3.1SVR427 
2.3.24.4BSD27 
2.3.3FreeBSD28 
2.3.4Linux28 
2.3.5MacOSX28 
2.3.6Solaris28 
2.3.7其他UNIX系统29 
2.4标准和实现的关系29 
2.5限制29 
2.5.1ISOC限制30 
2.5.2POSIX限制31 
2.5.3XSI限制33 
2.5.4函数sysconf、pathconf和fpathconf33 
2.5.5不确定的运行时限制40 
2.6选项43 
2.7功能测试宏46 
2.8基本系统数据类型47 
2.9标准之间的冲突48 
2.10小结48 
习题48 
第3章文件I/O49 
3.1引言49 
3.2文件描述符49 
3.3函数open和openat50 
3.4函数creat52 
3.5函数close53 
3.6函数lseek53 
3.7函数read57 
3.8函数write57 
3.9I/O的效率58 
3.10文件共享59 
3.11原子操作62 
3.12函数dup和dup263 
3.13函数sync、fsync和fdatasync65 
3.14函数fcntl65 
3.15函数ioctl70 
3.16/dev/fd71 
3.17小结72 
习题72 
第4章文件和目录74 
4.1引言74 
4.2函数stat、fstat、fstatat和lstat74 
4.3文件类型75 
4.4设置用户ID和设置组ID78 
4.5文件访问权限79 
4.6新文件和目录的所有权80 
4.7函数access和faccessat81 
4.8函数umask82 
4.9函数chmod、fchmod和fchmodat84 
4.10粘着位87 
4.11函数chown、fchown、fchownat和lchown87 
4.12文件长度89 
4.13文件截断90 
4.14文件系统90 
4.15函数link、linkat、unlink、unlinkat和remove93 
4.16函数rename和renameat95 
4.17符号链接96 
4.18创建和读取符号链接99 
4.19文件的时间99 
4.20函数futimens、utimensat和utimes101 
4.21函数mkdir、mkdirat和rmdir103 
4.22读目录104 
4.23函数chdir、fchdir和getcwd108 
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/O122 
5.8标准I/O的效率123 
5.9二进制I/O125 
5.10定位流126 
5.11格式化I/O127 
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附属组ID147 
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.2main函数158 
7.3进程终止158 
7.4命令行参数162 
7.5环境表163 
7.6C程序的存储空间布局163 
7.7共享库165 
7.8存储空间分配165 
7.9环境变量168 
7.10函数setjmp和longjmp170 
7.11函数getrlimit和setrlimit175 
7.12小结180 
习题180 
第8章进程控制181 
8.1引言181 
8.2进程标识181 
8.3函数fork182 
8.4函数vfork187 
8.5函数exit188 
8.6函数wait和waitpid190 
8.7函数waitid194 
8.8函数wait3和wait4195 
8.9竞争条件196 
8.10函数exec199 
8.11更改用户ID和更改组ID204 
8.12解释器文件207 
8.13函数system211 
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和tcgetsid237 
9.8作业控制237 
9.9shell执行程序240 
9.10孤儿进程组244 
9.11FreeBSD实现246 
9.12小结248 
习题248 
第10章信号249 
10.1引言249 
10.2信号概念249 
10.3函数signal256 
10.4不可靠的信号259 
10.5中断的系统调用260 
10.6可重入函数262 
10.7SIGCLD语义264 
10.8可靠信号术语和语义266 
10.9函数kill和raise267 
10.10函数alarm和pause268 
10.11信号集273 
10.12函数sigprocmask275 
10.13函数sigpending276 
10.14函数sigaction278 
10.15函数sigsetjmp和siglongjmp283 
10.16函数sigsuspend286 
10.17函数abort291 
10.18函数system293 
10.19函数sleep、nanosleep和clock_nanosleep298 
10.20函数sigqueue300 
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_timedlock327 
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线程和fork367 
12.10线程和I/O370 
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/O388 
14.1引言388 
14.2非阻塞I/O388 
14.3记录锁391 
14.4I/O多路转接403 
14.4.1函数select和pselect404 
14.4.2函数poll408 
14.5异步I/O410 
14.5.1SystemV异步I/O410 
14.5.2BSD异步I/O411 
14.5.3POSIX异步I/O411 
14.6函数readv和writev419 
14.7函数readn和writen421 
14.8存储映射I/O422 
14.9小结428 
习题428 
第15章进程间通信429 
15.1 引言429 
15.2 管道430 
15.3函数popen和pclose436 
15.4 协同进程441 
15.5 FIFO445 
15.6 XSIIPC448 
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/O505 
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/O544 
18.1引言544 
18.2综述544 
18.3特殊输入字符549 
18.4获得和设置终端属性553 
18.5终端选项标志554 
18.6stty命令560 
18.7波特率函数560 
18.8行控制函数561 
18.9终端标识562 
18.10规范模式567 
18.11非规范模式570 
18.12终端窗口大小576 
18.13termcap、terminfo和curses578 
18.14小结578 
习题579 
第19章伪终端580 
19.1引言580 
19.2概述580 
19.3打开伪终端设备585 
19.4函数pty_fork588 
19.5pty程序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超文本传输协议HTTP642 
21.4打印假脱机技术643 
21.5源代码644 
21.6小结684 
习题684 
附录A函数原型685 
附录A函数原型附录B其他源代码721 
附录C部分习题答案730 
附录参考书目730 
索引770

我来说两句

本书评论

共有 0 条评论
图书分类
我的书库手机端
帮助中心
会员登录 ×
新用户注册 ×