Linux程序设计 : 第4版(最负盛名的Linux程序设计图书)
基本信息
- 原书名: Beginning Linux Programming
- 原出版社: Wrox
- 作者: (英)Neil Matthew Richard Stones [作译者介绍]
- 译者: 陈健 宋健建
- 丛书名: 图灵程序设计丛书 操作系统
- 出版社:人民邮电出版社
- ISBN:9787115228215
- 上架时间:2010-6-11
- 出版日期:2010 年6月
- 开本:16开
- 页码:642
- 版次:1-1
- 所属分类:
计算机 > 操作系统 > Linux
编辑推荐
最负盛名的Linux程序设计图书
内容全面深入
全球开源社区集体智慧结晶
推荐阅读
内容简介回到顶部↑
时至今日,linux系统已经从一个个人作品发展为可以用于各种关键任务的成熟、高效和稳定的操作系统,因为具备跨平台、开源、支持众多应用软件和网络协议等优点,它得到了各大主流软硬件厂商的支持,也成为广大程序设计人员理想的开发平台。
本书是linux程序设计领域的经典名著,以简单易懂、内容全面和示例丰富而受到广泛好评。中文版前两版出版后,在国内的linux爱好者和程序员中也引起了强烈反响,这一热潮一直持续至今。本书是国内读者翘首以待的第4版,此次新版内容组织更加严谨,译者更是细心雕琢,保留了这部权威著作的原汁原味。
对linux所提供的功能全面而准确的阐述,以及贯穿全书的示例程序体验,使本书不仅成为初学者的最佳linux程序设计指南,而且是中高级程序员不可或缺的参考书。
本书是linux程序设计领域的经典名著,以简单易懂、内容全面和示例丰富而受到广泛好评。中文版前两版出版后,在国内的linux爱好者和程序员中也引起了强烈反响,这一热潮一直持续至今。本书是国内读者翘首以待的第4版,此次新版内容组织更加严谨,译者更是细心雕琢,保留了这部权威著作的原汁原味。
对linux所提供的功能全面而准确的阐述,以及贯穿全书的示例程序体验,使本书不仅成为初学者的最佳linux程序设计指南,而且是中高级程序员不可或缺的参考书。
作译者回到顶部↑
本书提供作译者介绍
Neil Matthew 和Richard Stones世界知名的Linux/UNIX专家,有数十年Linux/UNIX开发经验和从业经历。他们使用过几乎所有UNIX版本,并精通C/C++、LISP、Fortran、Perl、Tcl和Prolog等各种语言。他们从事过各种软件项目,从实时嵌入式系统到会计系统和零售信息系统。除本书外,他们还合著了PostgreSQL、MySQL方面的图书。
陈健 毕业于南京大学,1996年获电子学学士,2002年获计算机硕士,现工作于南京大学网络信息中心。长期从事于软件研发和教学工作,主要研究方向为网络管理。
宋健建 毕业于南.. << 查看详细
陈健 毕业于南京大学,1996年获电子学学士,2002年获计算机硕士,现工作于南京大学网络信息中心。长期从事于软件研发和教学工作,主要研究方向为网络管理。
宋健建 毕业于南.. << 查看详细
目录回到顶部↑
第1章 入门 1
1.1 unix、linux和gnu简介 1
1.1.1 什么是unix 1
1.1.2 什么是linux 2
1.1.3 gnu项目和自由软件基金会 3
1.1.4 linux发行版 3
1.2 linux程序设计 4
1.2.1 linux程序 4
1.2.2 文本编辑器 5
1.2.3 c语言编译器 5
1.2.4 开发系统导引 7
1.3 获得帮助 12
1.4 小结 14
第2章 shell程序设计 15
2.1 为什么使用shell编程 15
2.2 一点哲学 16
2.3 什么是shell 16
2.4 管道和重定向 18
2.4.1 重定向输出 18
2.4.2 重定向输入 19
1.1 unix、linux和gnu简介 1
1.1.1 什么是unix 1
1.1.2 什么是linux 2
1.1.3 gnu项目和自由软件基金会 3
1.1.4 linux发行版 3
1.2 linux程序设计 4
1.2.1 linux程序 4
1.2.2 文本编辑器 5
1.2.3 c语言编译器 5
1.2.4 开发系统导引 7
1.3 获得帮助 12
1.4 小结 14
第2章 shell程序设计 15
2.1 为什么使用shell编程 15
2.2 一点哲学 16
2.3 什么是shell 16
2.4 管道和重定向 18
2.4.1 重定向输出 18
2.4.2 重定向输入 19
前言回到顶部↑
欢迎阅读本书第4版,这是一本针对在Linux系统和其他UNIX风格的操作系统上进行程序开发的易于使用的指南性读物。
在本书中,我们的目标是介绍对于Linux程序员来说非常重要的主题,这些主题的涵盖面非常广泛。书名中的“beginning”更多的是指书中的内容而不是读者的技能。我们对本书的内容组织进行了精心的安排,以帮助读者更多地了解Linux所提供的功能,而不管读者现有的经验有多少。Linux程序设计是一个很大的领域,我们的目标是对广泛领域中的大量主题都进行介绍,从而让读者在每个主题上都具备足够的入门知识。
读者对象
如果你是一位程序员,希望利用Linux(或UNIX)提供给软件开发者的工具来加快程序开发的进度,尽量减少编程时间并让你的程序充分利用Linux系统所提供的功能,那么本书将非常适合你。书中明确清晰的解释和分步骤的实验,将帮助你迅速提高编程能力和掌握所有的关键技术。
我们假设读者具备一些C或C++语言的编程经验,这些经验可能来自Windows系统或其他一些操作系统。但我们会尽量保持书中示例程序的简单,即便你不是一个C语言编程专家,也可以轻松地阅读本书。如果存在需要直接比较Linux程序设计和C/C++程序设计的情况,我们都会在书中指出。
如果你刚开始学习Linux,请注意,这不是一本介绍Linux安装和配置的图书。如果你想多学习一些Linux系统管理方面的知识,请阅读其他的参考书籍,如Christopher Negus的Linux Bible 2007 Edition Wiley, ISBN 978-0470082799)。
本书的目标是作为一本教程,向读者介绍大多数Linux系统上都有的各种工具和函数/函数库集,同时本书也可以作为一本方便使用的参考手册。本书的特点是简单易懂、内容广泛、示例丰富。
主要内容
本书希望让你达到以下几个学习目标。
掌握标准Linux C语言函数库和由各种Linux或UNIX标准指定的其他工具的使用方法。
掌握如何使用大多数标准Linux开发工具。
学会通过DBM和MySQL数据库系统存储Linux中的数据。
理解如何为X视窗系统建立图形用户界面。我们将同时使用GTK(GNOME环境的基础)和Qt(KDE环境的基础)函数库。
拥有开发自己的实际应用程序的信心和能力。
在讨论这些主题时,我们首先介绍编程理论,然后通过适当的例子和清晰的解释来阐明它。通过这种方式,你可以在第一遍的学习中就能够迅速掌握相关知识。如有必要,你还可以回顾这些内容以重温所有的基本要素。
书中小示例程序主要是为了演示一组函数的用法或某些新概念的实际使用情况。贯穿全书有一个大型的示例项目:一个简单的用于记录音乐CD详细资料的数据库应用程序。随着知识面的扩展,你可以按照自己的意愿开发、重新实现和扩展这个项目。虽然如此,这个CD应用程序对本书的任何一章来说都不是必需的,所以只要你愿意也可以忽略它,但我们认为它对书中讨论的技术提供了一些有用的和深入的示范,并且它还有助于讲解每个高级主题。我们对这个应用程序的第一次讨论出现在本书第2章的结尾处,它显示了一个非常大的shell脚本是如何组织的,shell如何处理用户输入、如何构造菜单以及如何存储和检索数据。
在简要介绍完编译程序、链接函数库和访问在线手册的基本概念后,将全面介绍shell编程。然后你将投入到C语言程序设计中,我们在这里讨论的内容包括文件操作、从Linux环境中获取信息、处理终端的输入输出和curses函数库(它使得交互式的输入和输出更易于管理)。最后你将用C语言重新实现CD应用程序。应用程序的设计方法没有变化,但新的代码中将用curses函数库提供一个基于屏幕的用户界面。
接下来我们讨论数据管理。为了学习dbm数据库函数库的使用方法,我们将再次重新实现这个应用程序,但这次实现所采用的设计方法将贯穿本书后续的一些章节。在其后的一章中,我们将介绍数据是如何使用MySQL存储在一个关系数据库中的,并且我们还将在该章的稍后部分重新使用这种数据存储技术,以便读者了解两种技术的区别。随着这些应用程序的规模越来越大,我们接下来需要介绍调试、源代码控制、软件发行和makefile文件等具体内容。
接下来,你将看到不同的Linux进程是如何使用各种技术进行通信的,以及Linux程序是如何使用套接字来支持不同机器之间的TCP/IP网络通信的,包括与使用不同处理器架构的机器之间通信的问题。
在掌握了Linux程序设计的基础之后,我们开始讨论图形化程序的创建方法。我们将通过两章的篇幅来介绍相关内容。首先介绍GTK+工具包,它是GNOME开发环境的基础;然后介绍Qt工具包,它是KDE开发环境的基础。
在本书中,我们的目标是介绍对于Linux程序员来说非常重要的主题,这些主题的涵盖面非常广泛。书名中的“beginning”更多的是指书中的内容而不是读者的技能。我们对本书的内容组织进行了精心的安排,以帮助读者更多地了解Linux所提供的功能,而不管读者现有的经验有多少。Linux程序设计是一个很大的领域,我们的目标是对广泛领域中的大量主题都进行介绍,从而让读者在每个主题上都具备足够的入门知识。
读者对象
如果你是一位程序员,希望利用Linux(或UNIX)提供给软件开发者的工具来加快程序开发的进度,尽量减少编程时间并让你的程序充分利用Linux系统所提供的功能,那么本书将非常适合你。书中明确清晰的解释和分步骤的实验,将帮助你迅速提高编程能力和掌握所有的关键技术。
我们假设读者具备一些C或C++语言的编程经验,这些经验可能来自Windows系统或其他一些操作系统。但我们会尽量保持书中示例程序的简单,即便你不是一个C语言编程专家,也可以轻松地阅读本书。如果存在需要直接比较Linux程序设计和C/C++程序设计的情况,我们都会在书中指出。
如果你刚开始学习Linux,请注意,这不是一本介绍Linux安装和配置的图书。如果你想多学习一些Linux系统管理方面的知识,请阅读其他的参考书籍,如Christopher Negus的Linux Bible 2007 Edition Wiley, ISBN 978-0470082799)。
本书的目标是作为一本教程,向读者介绍大多数Linux系统上都有的各种工具和函数/函数库集,同时本书也可以作为一本方便使用的参考手册。本书的特点是简单易懂、内容广泛、示例丰富。
主要内容
本书希望让你达到以下几个学习目标。
掌握标准Linux C语言函数库和由各种Linux或UNIX标准指定的其他工具的使用方法。
掌握如何使用大多数标准Linux开发工具。
学会通过DBM和MySQL数据库系统存储Linux中的数据。
理解如何为X视窗系统建立图形用户界面。我们将同时使用GTK(GNOME环境的基础)和Qt(KDE环境的基础)函数库。
拥有开发自己的实际应用程序的信心和能力。
在讨论这些主题时,我们首先介绍编程理论,然后通过适当的例子和清晰的解释来阐明它。通过这种方式,你可以在第一遍的学习中就能够迅速掌握相关知识。如有必要,你还可以回顾这些内容以重温所有的基本要素。
书中小示例程序主要是为了演示一组函数的用法或某些新概念的实际使用情况。贯穿全书有一个大型的示例项目:一个简单的用于记录音乐CD详细资料的数据库应用程序。随着知识面的扩展,你可以按照自己的意愿开发、重新实现和扩展这个项目。虽然如此,这个CD应用程序对本书的任何一章来说都不是必需的,所以只要你愿意也可以忽略它,但我们认为它对书中讨论的技术提供了一些有用的和深入的示范,并且它还有助于讲解每个高级主题。我们对这个应用程序的第一次讨论出现在本书第2章的结尾处,它显示了一个非常大的shell脚本是如何组织的,shell如何处理用户输入、如何构造菜单以及如何存储和检索数据。
在简要介绍完编译程序、链接函数库和访问在线手册的基本概念后,将全面介绍shell编程。然后你将投入到C语言程序设计中,我们在这里讨论的内容包括文件操作、从Linux环境中获取信息、处理终端的输入输出和curses函数库(它使得交互式的输入和输出更易于管理)。最后你将用C语言重新实现CD应用程序。应用程序的设计方法没有变化,但新的代码中将用curses函数库提供一个基于屏幕的用户界面。
接下来我们讨论数据管理。为了学习dbm数据库函数库的使用方法,我们将再次重新实现这个应用程序,但这次实现所采用的设计方法将贯穿本书后续的一些章节。在其后的一章中,我们将介绍数据是如何使用MySQL存储在一个关系数据库中的,并且我们还将在该章的稍后部分重新使用这种数据存储技术,以便读者了解两种技术的区别。随着这些应用程序的规模越来越大,我们接下来需要介绍调试、源代码控制、软件发行和makefile文件等具体内容。
接下来,你将看到不同的Linux进程是如何使用各种技术进行通信的,以及Linux程序是如何使用套接字来支持不同机器之间的TCP/IP网络通信的,包括与使用不同处理器架构的机器之间通信的问题。
在掌握了Linux程序设计的基础之后,我们开始讨论图形化程序的创建方法。我们将通过两章的篇幅来介绍相关内容。首先介绍GTK+工具包,它是GNOME开发环境的基础;然后介绍Qt工具包,它是KDE开发环境的基础。
序言回到顶部↑
所有的计算机程序员都会随手记下大量笔记,其中的代码示例往往来自前人对使用手册的深入钻研,或者来自Usenet新闻组,来自后者的代码有时连最盲目的探索者也不敢照搬照抄(当然也有另一种观点认为,他们都可以自由地访问Usenet新闻组,并且从来没有停止过对其中代码的使用),但采用这种风格的图书可以说少之又少,这不能不说是一件很奇怪的事情。在因特网中,存在着大量针对程序设计和系统管理特定领域的、短小精悍而又切中问题关键的文档。Linux文档项目发表了一系列的文档,内容涵盖了Linux的各个方面,从在同一台机器上同时安装Linux和Windows到将你的咖啡机连接到Linux系统。你可以通过网址http://www.tldp.org来查看Linux文档项目。
从另一方面来看,现在的图书市场充斥着大量这样的图书,它们要么是大部头的巨著,内容详尽而全面,使得你没有时间把它们读完;要么就是完全面向初学者的入门图书,你购买它们只是为了送给朋友(开个玩笑而已)。只有很少的书籍尝试着对大量实际应用领域的基本概念和做法进行介绍。本书就是其中之一,它是对程序员笔记的摘要,经过破译(要认清程序员的笔迹可并非易事)和编辑,并将它们有机地组织起来。
本书这一版经过了审阅和更新,反映了目前Linux开发的现状。
Alan Cox
Linux内核维护者
从另一方面来看,现在的图书市场充斥着大量这样的图书,它们要么是大部头的巨著,内容详尽而全面,使得你没有时间把它们读完;要么就是完全面向初学者的入门图书,你购买它们只是为了送给朋友(开个玩笑而已)。只有很少的书籍尝试着对大量实际应用领域的基本概念和做法进行介绍。本书就是其中之一,它是对程序员笔记的摘要,经过破译(要认清程序员的笔迹可并非易事)和编辑,并将它们有机地组织起来。
本书这一版经过了审阅和更新,反映了目前Linux开发的现状。
Alan Cox
Linux内核维护者
媒体评论回到顶部↑
“本书介绍了大量实际应用领域的基本概念和做法,它是程序员笔记的精华摘要,经过破译和编辑,并有机地组织在了一起。”
——Alan Cox,Linux内核维护者
——Alan Cox,Linux内核维护者


点击看大图







加载中...
