译者序

作为UNIX环境编程方面的经典著作,由著名技术专家W. Richard Stevens撰写的Advanced Programming in the UNIX ® Environment 自1992年出版以来,受到专家和读者的普遍欢迎。由Stephen A. Rago 作为共同作者,根据新的系统和规范进行了更新,2005年出版了第2版。2013年由Rago更新到了第3版,涵盖了70多个最新版POSIX.1标准的新增接口,删除了STREAMS相关接口的内容,并将使用的典型平台更新为Solaris 10、Darwin 10.8.0、FressBSD 8.0和Ubuntu 12.04。

目前UNIX版本不断涌现,例如广为使用的苹果Mac OS X和iOS使用开源类UNIX操作系统Darwin,谷歌的Android采用Linux作为操作系统内核。尽管UNIX编程环境和C程序设计语言的标准化方面已经有不少工作,但系统接口不断增加,例如Single UNIX Specification第1版(SUSv1)1994年出版时大约包含了1170个接口(也被称为Spec 1170),到2010年发布第4版时(SUSv4),已经包括1833个接口。虽然系统调用接口和库函数可参见《UNIX程序员手册》第2、3部分,但“手册中没有给出实例及基本原理,而这些正是本书所要讲述的内容”(第1版前言)。本书精选了常用的400多个系统调用和库函数,这些接口基本是UNIX系统软件的核心功能,涵盖了 UNIX/Linux 系统编程的方方面面。本书通过简明完整的例子来说明其用途,不仅仅说明了其基本用法,还反映了不同平台之间细微差异,有助于读者对整个编程环境有全面深入的了解。在翻译本书的过程中,译者也是收益良多,同时,一些经典的案例已经用于大学课堂教学和编程实践中。

本书的第 2 章至第 12 章由同济大学张亚英翻译和校对,其余由上海交通大学软件学院戚正伟翻译和校对,上海交通大学计算机系尤晋元教授对全书统稿。本书第1版和第2版中译本自出版以来,很多读者对其提出了宝贵意见,在本版本中尽量采纳了这些意见。同时,我们的工作还得到上海交通大学软件学院许多研究生(葛馨霓、王佳骏、李垚、王润泽、朱新宇、孙海洋、张子卓、许欣昊、马军、梁丹)的帮助,在此一并表示感谢。

还要特别感谢人民邮电出版社编辑杨海玲在本书的编辑、出版方面所付出的辛勤劳动。

我们希望本书的出版对相关科技人员和读者所有帮助,同时也期望广大专家和读者提出宝贵意见。