Linux 编程入门

作者:J. Mark Shacklette
  • 作者:Neil Matthew 和 Richard Stones

  • 出版社:Wrox Press

  • 页数:710

  • ISBN:1-874416-68-0

  • 价格:$36.95

  • 评论者:Mark Shacklette

偶尔会出现这样一本书,它完美地填补了空白,以至于它的被接受几乎是理所当然的。对于 Linux 程序员或任何对学习 Unix 编程感兴趣的人来说,您的书架上又多了一本新书:《Linux 编程入门》,作者是 Neil Matthew 和 Richard Stones。这本书在主题覆盖范围和令人惊讶的深度方面都堪称杰作,而它的重点,正如书名所示,是新手。作者的目标是“涵盖足够广泛的主题,让您在每个主题中都有一个良好的开端。” 在这一点上,他们做得非常出色。书中包含了关于 shell 编程(/bin/sh)、Unix 文件系统入门、终端 I/O、curses 库以及关于进程和信号的章节。还有关于如何使用 GNU gcc 编译器、gdb 调试器、make、RCS 和其他开发工具的章节。(他们甚至教您编写 man 手册的基础知识,以便为您在掌握 Linux 编程后编写的所有新应用程序编写手册。)作者涵盖了 Linux 兼容 X/Open 的 dbm 数据库(一些发行版有 gdbm,即 GNU 风格的 dbm)。他们用一百一十四页的篇幅专门介绍进程间通信,包括管道、FIFO、System V IPC(信号量、消息队列、共享内存)和 Berkeley 套接字。书中有一个 93 页的 X 编程入门,主要侧重于 Tcl、Tk 和 Wish,以及少量的 Java。本书的结尾是两章专门介绍互联网编程,一章介绍 HTML,另一章介绍 CGI。

由于范围如此广泛,因此必须有所遗漏。Expect 的内容只分配了短短两段。Python 缺失了,Motif 编程的大部分内容也缺失了,Tcl/Tk 之外的(Xlib 和 Xt 只是顺带提及)。Perl 的唯一内容是一个 CGI 脚本示例,如果您不仔细嗅探 X 编程讨论结束时新鲜啤酒的味道,那么关于 Java 的部分可能会完全被您忽略。(有趣的是,Java 被附加到 X 编程,而不是互联网编程章节。)然而,这种重点是必要的,以避免出现几卷厚的文本,而专注于遗漏之处将错过这项工作的重点,即通过使用实践代码示例向您介绍 Linux 编程,这些示例是循序渐进且逐步呈现的。每个新主题都在几个简短的段落中介绍,然后是一个简洁但完整的“试一试”代码示例。

超过 10,000 行源代码填满了书页,所有这些源代码都可以下载(封底缺少常见的 CD)。有了如此多的源代码,通常会出现一些小错误,例如在关于 shell 编程的部分中,case 语句将 case 列为“[nN]*”(带引号),而不是不带引号的 [nN]*(如果您输入任何以 nN 开头的内容,前者会失败);或者,在讨论管道时,行

sprintf(buffer, "Once apon a time, there ..."\n)

在书的输出列表中被神奇地拼写检查为“Once upon a time”(不幸的是,我的编译器不如编辑器那么智能,并且将拼写保留为“apon”)。总而言之,源代码编译和运行良好。出版社 Wrox Press 在其网站 http://www.wrox.com/ 上提供了源代码和一个示例章节供您查阅。

示例代码直奔主题。作者展示了最少的代码来阐明一个想法,一旦给出,就会快速总结,然后他们继续进行下一个推断或改进。这种方法使新的 Linux 程序员能够在不过多分散注意力或相互依赖的情况下牢牢掌握主题。所有示例都是独立的,可以编译和运行——这里没有代码片段。这种方法方便并鼓励读者尝试代码示例,因为它们非常有限,即使是最勇敢的新手也不会引入太多副作用。

虽然大多数示例都集中,但作者确实展示并开发了一个更大的应用程序,该应用程序实现了一个简单的音频 CD 编目程序。该应用程序在第 2 章的早期以一个极其简单的 shell 脚本的形式出现,该脚本练习了 shell 编程中流程控制语句的使用,并使用简单的文本文件作为数据库。该应用程序在第 6 章中再次出现。这一次用 C 语言重写,功能与 shell 脚本版本相同,并使用新的界面来练习 curses 终端库。在第 7 章中,该应用程序获得了一个真正的数据库 dbm。在第 11 章中,该应用程序演变为一个小型客户端-服务器系统,该系统通过使用命名管道将数据库与用户界面分离。此示例说明了进程同步以及单个服务器和多个客户端之间的双向数据流。在第 12 章中,该应用程序将上一章中的命名管道替换为消息队列,这解决了先前使用命名管道时遇到的一些 I/O 同步问题。最后,CD 应用程序在第 17 章中以 Web 形式出现,作为 HTML 界面与 CGI 层对话数据库服务器的示例。这种变色龙般的应用程序极大地增强了本书中提出的许多原理的沟通。

简而言之,《Linux 编程入门》是 Linux 编程主要主题的教程。如果您愿意花一些时间来快速入门,您会发现自己拥有一本书,它不仅会在魔幻花园中牵着您的手,而且最终会为您提供一双精良的步行鞋,让您为自己的探索做好充分的准备。有了这本书在您身边,正如我儿子的初级读物所说

你脑子里有智慧。你脚下有鞋子。你可以掌控自己去任何你想去的地方。

Mark Shacklette 是 Lake Shore MicroTech Group 的负责人,该公司是一家位于芝加哥的咨询公司,专门从事 Unix 和 Windows NT 中的客户端-服务器开发。当他不与客户在一起时,他在芝加哥大学“社会思想委员会”攻读博士学位。他与妻子 Karen、儿子 David 和两只猫住在伊利诺伊州德斯普兰斯。可以通过 jmshackl@midway.uchicago.edu 联系到他。

加载 Disqus 评论