本书特色:
书中源代码源自工程实例,可以在网上下载。
本书作者是Linux程序员的领军人物。
一本备受好评的Linux程序开发经典。
“本书的第一版总是放在我桌上举手可及的地方,因为它非常好地解释了Linux用户态API的所有领域。而第二版更为出色,我将用它来取代第一版。”
—— Greg Kroah-Hartman
著名Linux内核程序员
本书介绍了在Linux环境下开发应用程序需要掌握的知识,对编程实践中经常遇到的问题进行了详细的讲解,并提供了典型实例加以说明。
全书共分为4个部分。第一部分介绍初学者需要了解的知识,包括Linux的历史、从事自由软件开发需要了解的版权知识和GPL等许可证,以及如何获取和使用在线文档系统。第二部分介绍了开发环境和工具,其中包括Emacs编辑器、vi编辑器及gdb调试器的使用,gcc的选项和扩展,GNU C库的基本知识,内存溢出和泄漏的调试工具,如何创建、使用、管理静态库和动态库,以及如何通过系统调用请求系统服务。第三部分详细介绍了Linux系统编程知识,其中包括进程模型、简单文件管理、信号处理、高级文件操作、目录操作、作业控制、终端与伪终端、socket网络、时间和定时器、随机数、虚拟控制台、Linux控制台以及如何编写安全的程序。第四部分精选了Linux编程中最常用的开发库进行介绍,其中包括字符串匹配、用于终端编程的S-Lang库、基于散列的数据库函数库、命令行解析库,如何运行时动态加载共享对象,以及有关用户身份识别和验证的库。
本书内容丰富、实用,适合需要开发Linux软件,或者需要把软件从其他平台移植到Linux上的程序员阅读。
作者简介:
Michael K. Johnson是Specifix公司的操作系统工程师。他曾是Red Hat的操作系统开发人员,在那里他管理一个内核开发小组长达3年半的时间,他是Fedora项目基础技术负责人。他还曾做过有关Linux应用程序开发的教学工作。
Erik W. Troan是Specifix公司的合伙创始人和执行副总裁。他曾经是Red Hat公司产品工程部的副总裁,负责规格描述和创建技术,例如RPM、Linux操作系统、Red Hat网络、高性能服务器以及Red Had网站的基础设施。
读者对象:
本书是一本出色的参考书籍,适合各个层次的Linux程序员,也包括从其他操作系统转行的C程序员。
无封面