本文记录在阅读《UNIX环境高级编程》第三版过程中发现的错误,写这篇文章时阅读到第五章标准I/O库.
2014年6月第二版 2015年6月北京第4次印刷.
本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。
本书内容权威,概念清晰,阐述精辟,对于所有层次UNIX程序员都是一本不可或缺的参考书。
下面介绍我再阅读本书过程中所发现的错误,如果你有任何发现欢迎在下面评论.

勘误一

p34页 函数fpathconf返回值为long,书中为log.

勘误二

p55页 中文版中“从中可以看到,文件中间的30个未写入字节都被读成0,每一行开始的一个7位数是以8进制形式表示的字节偏移量。”
实际上英文原版中的内容如下:

勘误三

p37页该程序读两个输入文件pathconf.sym和sysconfig.sym,这个两个文件中包含了用制表符分割的限制名和符号列表。
实际阅读该awk程序读的两个文件应该是pathconf.sym和sysconf.sym.

勘误四

p109 执行该程序时应使用./mycd

实际上APUE书中多用./a.out来表达当前程序,需要对照实际代码来执行。

勘误五

p89页,书中的内容介绍如下:

但在man du中发现

与书中所说恰恰相反,设置了POSIXLY_CORRECT之后unit default 是512,否则unit default才是1024.