想学习编程?想从Windows过渡到Linux?曾经进行过Linux开发,但希望进一步探索系统调用接口?不管是哪种情况,这本书都能够快速和直接地帮助你掌握这些重要技术,以构建严谨的Linux软件。
该书通过展示和解释优良的实例程序来介绍Linux编程,这可能是最有效的方式。通过引用V7UNIX和GNU中的源代码,ArnoldRobbins着重介绍了基础的系统调用API,这些API在任何重要程序中均处于核心地位。Robbins还循序渐进地介绍了许多高水平的编程准则和“内幕’’技术。与此同时,他还仔细地陈述了许多实际性的问题,如性能、可移植性和健壮性。
本书包括以下主要内容:内存管理文件输入/输出文件元数据进程用户和组排序和查找参数解析扩展接口信号国际化调试更多……
编写应用软件总会至少涉及到两类接口。一类接口面向最终用户,衡量这类接口的标准主要是看用户使用这些接口是否方便,功能是否丰富,或者简单地说,就是看是否“好用”。另一类接口就是底层库和系统调用接口。这类接口将最终决定你所编写应用软件的功能和性能,因此如何选取这些接口是编码的重点之一。
我们知道,由于历史原因以及其他各种复杂因素,造就了今天UNIX的多个衍生版本。这些分支之间存在着各种各样的差异,单从各种UNIX系统复杂的衍生关系就可以看出来。Linux作为UNIX界的后起之秀,就必须面对这个现实。它既要继续支持UNIX中业已存在的接口,又要对某些实现方法做出决策,以提供优良的性能。因此,它必定与已有的UNIX不同。要想在UNIX/Linux下编写出优秀的软件,就必须熟悉这些系统调用的方方面面。既要了解这些接口好的一面,也要知道它们的局限性。只有这样,才能在选取接口时做出正确的决策。当然,这是非常困难的一件事情。涉及的内容太多,而且很难找到这方面的资料,书店里基本上没有全面深入介绍这方面内容的书籍。
不过,这本书解决了上述问题。通过阅读这本书,你能够快速地掌握这些重要技术,以构建严谨的Linux软件。作者ArnoldRobbins是一位来自以色列的专业程序员和教授,自1980年以来,他就开始使用C、c++、UNIX和GNU/Linux,具有非常深厚的理论基础和丰富的编程实践。他还是一名优秀的作家,其作品有《UNIX in a Nutshell》、《Learning the Korn Shell》和《Effective awk Programming》等。Arnold是一位令人尊敬的资深GNU项目志愿者,目前负责维护gawk项目。本书中的许多例子都是直接从这个重要项目的优秀代码中提取出来的,均代表了作者及其资深同行的真知灼见。
本书的特色是讲解深入,力求透彻,不赘述其他书籍中已有的内容。其内容覆盖面广,基本上涉及到了编写应用程序所用到的各个系统调用。通过阅读本书,读者可以全面深入地了解Linux编程过程中涉及的各个方面,为实际设计和编程打下良好基础。
翻译国外著名作家的书籍总是非常具有挑战性。他们的书籍往往比较有深度,在内容讲述上也是各有风格,常常是引经据典,这给我们的翻译工作带来了不小的压力。我们本着对读者认真负责的精神,力求做到技术内涵的准确无误和专业术语的规范统一,力求将翻译的准确性和灵活性有效结合。
本书由杨明军、曹亚菲、夏毅等翻译。全书最后由杨明军统稿。在翻译过程中,我们得到了张静、张煜、肖和平、张杰良、王景新、汪东、张英、张明军、许华、李慧霸、王凤芹等的支持,在此表示感谢。Be Flying工作室负责人肖国尊负责在翻译过程中进行相关的协调工作,并控制全书翻译质量和进度。
敬请各位读者就本书提供反馈意见,我们希望通过读者的意见来了解自己的不足,以求在今后译作中更多地和更切实际地考虑读者的需要。读者可以将意见发送到be-flying@sohu.com。此外,在本书翻译过程中,我们对原书中的一些错误进行了更正,所找出的原书错误及改正情况将在WWW.china-pub.corn上贴出,请各位读者关注。
译者
2004年10月26日