Linux程序设计(第3版) (07年度畅销榜NO.5) (08年度畅销榜TOP50)
基本信息
- 作者: (英)Neil Matthew Richard Stones [作译者介绍]
- 译者: 陈健 宋健建
- 丛书名: 图灵程序设计丛书.Linux/UNIX系列
- 出版社:人民邮电出版社
- ISBN:9787115159021
- 上架时间:2007-6-15
- 出版日期:2007 年7月
- 开本:16开
- 页码:694
- 版次:3-1
- 所属分类:
计算机 > 操作系统 > Linux
编辑推荐
最负盛名的Linux程序设计图书
内容全面深入
全球开源社区集体智慧结晶
内容简介回到顶部↑
本书讲述在linux系统及其他unix风格的操作系统上进行的程序开发,主要内容包括标准linux c语言函数库和由不同的linux或unix标准指定的各种工具的使用方法,大多数标准linux开发工具的使用方法,通过dbm和mysql数据库系统对linux中的数据进行存储,为x视窗系统建立图形化用户界面等。本书通过先介绍程序设计理论,再以适当的例子和清晰的解释来阐明它的方式,帮助读者迅速掌握相关知识。.
本书适合linux的初学者及希望利用linux进行开发的程序设计人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。
时至今日,linux系统已经从一个个人作品发展为可以用于各种关键任务的成熟,高效和稳定的操作系统。因为具备跨平台、开源、支持众多应用软件和网络协议等优点,它得到了各大主流软硬件厂商的支持,也成为广大程序设计人员理想的开发平台。..
本书是linux程序设计领域的经典名著,以筒单易懂、内容全面和示例丰富而受到广泛好评。中文版前一版出版后,在国内的linux爱好者和程序员中也引起了强烈反响,这一热潮一直持续至今。本书是国内读者翘首以待的第3版,延续了上一版的写作风格,除扩展了原有的linux编程基础、shell编程、进程、线程、管道、套接字等内容,还增添了mysql数据库访问和管理、gnome与kde编程。linux编程标准等新章节,并将tcl、perl、x、html和cgi编程等章节作为免费网上扩展内容,进一步巩固了其无可替代的市场地位。...
本书适合linux的初学者及希望利用linux进行开发的程序设计人员阅读,也适合作为高等院校计算机相关专业师生的参考教材。
时至今日,linux系统已经从一个个人作品发展为可以用于各种关键任务的成熟,高效和稳定的操作系统。因为具备跨平台、开源、支持众多应用软件和网络协议等优点,它得到了各大主流软硬件厂商的支持,也成为广大程序设计人员理想的开发平台。..
本书是linux程序设计领域的经典名著,以筒单易懂、内容全面和示例丰富而受到广泛好评。中文版前一版出版后,在国内的linux爱好者和程序员中也引起了强烈反响,这一热潮一直持续至今。本书是国内读者翘首以待的第3版,延续了上一版的写作风格,除扩展了原有的linux编程基础、shell编程、进程、线程、管道、套接字等内容,还增添了mysql数据库访问和管理、gnome与kde编程。linux编程标准等新章节,并将tcl、perl、x、html和cgi编程等章节作为免费网上扩展内容,进一步巩固了其无可替代的市场地位。...
作译者回到顶部↑
本书提供作译者介绍
Neil Matthew和Richard Stones都是世界知名的Linux/UNIX专家,有数十年Linux/UNIX开发经验和丰富的软件研发从业经历。他们使用过几乎所有UNIX版本,并精通C/C++、LISP、Fortran、Peri、Tcl和Prolog等各种语言。他们从事过各种软件项目,从实时嵌入式系统到会计系统和零售信息系统。除本书外,他们还合著了Professional Linux Programming和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 c语言编译器 5
1.2.3 开发系统导引 6
1.3 获得帮助 11
1.4 小结 13
第2章 shell程序设计 14
2.1 为什么使用shell编程 14
2.2 一点哲学 15
2.3 什么是shell 15
2.4 管道和重定向 17
2.4.1 重定向输出 17
2.4.2 重定向输入 18
2.4.3 管道 18
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 c语言编译器 5
1.2.3 开发系统导引 6
1.3 获得帮助 11
1.4 小结 13
第2章 shell程序设计 14
2.1 为什么使用shell编程 14
2.2 一点哲学 15
2.3 什么是shell 15
2.4 管道和重定向 17
2.4.1 重定向输出 17
2.4.2 重定向输入 18
2.4.3 管道 18
译者序回到顶部↑
本书是学习Linux程序设计的经典著作,适合Linux的初学者以及有一定编程基础且开始利用Linux编程的读者阅读。本书涉及面非常广泛,基本涵盖了Linux程序设计的各个方面,而且讲解简明清晰,切中要害。.
本书的第2版在2000年出版,中文版于2002年由机械工业出版社出版,当年就在国内的Linux爱好者和程序员中引起了很大的反响,这一热潮一直持续至今。国内很多大学在开设Linux程序设计课程时都使用本书作为教科书或主要参考书。如今,本书第3版的推出,不仅对原书中内核编程、设备驱动程序、CVS和GUI开发环境等内容做了大量扩展,而且还增加了介绍MySQL数据库访问和管理、KDE编程、Linux编程标准等新内容。相信本书第3版中译本的出版一定会给读者带来新的感受,并进一步推动国内如火如荼的Linux应用。..
作为这一经典著作的翻译者,我们既感到非常荣幸,同时也深感责任重大,在翻译过程中不敢稍有懈怠,除了对原文中的一些错误进行改正,为帮助读者理解,还对一些名词加了译注。但因为本书涉及面广,有些领域也并非我们所擅长,所以译文中错误在所难免。我们真诚希望读者能提出指正意见,以便在本书重印时作出修订。
最后感谢人民邮电出版社的编辑,没有他们始终如一的鼓励和督促,本书是很难翻译完成的。...
陈健 宋健建
2007年春于南京大学
本书的第2版在2000年出版,中文版于2002年由机械工业出版社出版,当年就在国内的Linux爱好者和程序员中引起了很大的反响,这一热潮一直持续至今。国内很多大学在开设Linux程序设计课程时都使用本书作为教科书或主要参考书。如今,本书第3版的推出,不仅对原书中内核编程、设备驱动程序、CVS和GUI开发环境等内容做了大量扩展,而且还增加了介绍MySQL数据库访问和管理、KDE编程、Linux编程标准等新内容。相信本书第3版中译本的出版一定会给读者带来新的感受,并进一步推动国内如火如荼的Linux应用。..
作为这一经典著作的翻译者,我们既感到非常荣幸,同时也深感责任重大,在翻译过程中不敢稍有懈怠,除了对原文中的一些错误进行改正,为帮助读者理解,还对一些名词加了译注。但因为本书涉及面广,有些领域也并非我们所擅长,所以译文中错误在所难免。我们真诚希望读者能提出指正意见,以便在本书重印时作出修订。
最后感谢人民邮电出版社的编辑,没有他们始终如一的鼓励和督促,本书是很难翻译完成的。...
陈健 宋健建
2007年春于南京大学
前言回到顶部↑
欢迎阅读本书第3版,这是一本针对在Linux系统和其他UNIX风格的操作系统上进行程序开发的易于使用的指南性读物。.
在本书中,我们的目标是介绍对于Linux程序员来说非常重要的主题,这些主题的涵盖面非常广泛。书名中的“beginning”更多的是指书中的内容而不是读者的技能。我们对本书的内容组织进行了精心的安排,以帮助读者更多地了解Linux所提供的功能,而不管读者现有的经验有多少。Linux程序设计是一个很大的领域,我们的目标是对广泛领域中的大量主题都进行介绍,从而让读者在每个主题上都能够具备足够的“入门”知识。
读者对象
如果你是一位程序员,希望利用Linux(或UNIX)提供给软件开发者的工具来加快程序开发的进度,优化你的编程时间并让你的程序充分利用Linux系统所提供的功能,那么就应该选择本书。书中明确清晰的解释和分步骤的实验,将帮助你迅速提高编程能力和掌握所有关键技术。
我们假设读者具备一些C或C++语言的编程经验,这些经验可能来自Windows系统或其他一些操作系统,但我们会尽量保持书中示例程序简单,即便你不是一个C语言编程专家,也可以轻松地阅读本书。如果存在需要直接比较Linux程序设计和C/C++程序设计的情况,我们都会在书中指出。
如果你刚开始学习Linux,请注意,这不是一本介绍Linux安装和配置的图书。如果你想多学习一些Linux系统管理方面的知识,请阅读其他的参考书籍,如Running Linux(《运行Linux》)第4版,作者是Matt Welsh、Matthias Kalle Dalheimer、Terry Dawson和Lar Kaufman(O’Reilly出版社,ISBN 0596002726)或Linux System Administration: A User’s Guide(《Linux系统管理:用户指南》),作者是Marcel Gagné(Addison-Wesley出版社,ISBN 0201719347)。
本书的目标是作为一个指导性教材,向读者介绍大多数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系统管理方面的知识,请阅读其他的参考书籍,如Running Linux(《运行Linux》)第4版,作者是Matt Welsh、Matthias Kalle Dalheimer、Terry Dawson和Lar Kaufman(O’Reilly出版社,ISBN 0596002726)或Linux System Administration: A User’s Guide(《Linux系统管理:用户指南》),作者是Marcel Gagné(Addison-Wesley出版社,ISBN 0201719347)。
本书的目标是作为一个指导性教材,向读者介绍大多数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程序设计》的第3版,它经过了审查和更新,反映了目前Linux开发的现状,其中用单独一章讨论了使用Qt工具包进行编程,而该工具包是KDE GUI程序设计的基础。..
第18章为你加入内核开发程序员的队伍提供了一个机会。正如你将会看到的,它与为大型应用程序编写模块并没有实际的不同。请做好准备,一起加入欢乐的队伍吧!...
Alan Cox
Linux内核维护者
从另一方面来看,现在的书籍市场充斥着大量这样的图书,它们要么是大部头的巨著,内容详尽而全面,使得你没有时间把它们读完;要么就是完全面向初学者的入门图书,你只是购买它们用来送给朋友开个玩笑。只有很少的书籍是尝试着对大量实际应用领域的基本概念和做法进行介绍。这本书就是其中之一,它是对程序员学习笔记的摘要、破译(读取程序员的手稿)和编辑,并将它们有机地组织在一起。
本书是《Linux程序设计》的第3版,它经过了审查和更新,反映了目前Linux开发的现状,其中用单独一章讨论了使用Qt工具包进行编程,而该工具包是KDE GUI程序设计的基础。..
第18章为你加入内核开发程序员的队伍提供了一个机会。正如你将会看到的,它与为大型应用程序编写模块并没有实际的不同。请做好准备,一起加入欢乐的队伍吧!...
Alan Cox
Linux内核维护者








点击看大图







加载中...

