《APUE》带给人的最初印象
Stevens 的书单可以在很多人的推荐学习书籍中发现,这似乎变成了一件十分正常的事。当我自己买到这些书的英文版时,我才发现那么多人推荐的这些书在内容上便极其庞大,这就是最初的印象。
我仍旧在学习这些书,从大学开始阅读这些书。时有终止,却总能再次拿起。垂头大嚼,其中的喜悦与难受可见一斑。以我的经历来谈,阅读这些书完全不像推荐给别人那样轻松,读不下去也时常发生,即便看看书的厚度也可能让人心有余悸!
我阅读 《APUE》的成果与一些看法
《APUE》 我读完了 80% ,即便如此每次重读仍旧能够找到新的知识点,这一度让我怀疑自己的理解。有人说,这本书适合在用到某个 api 时再去翻阅,这一观点我并不完全赞成,但是我自己有时也在这样做着。
如果以这种观点去看待 《APUE》 这本书,那么其实完全不需要花费太多的时间。更进一步讲其实完全不需要这样的一本书,unix-like 系统中自带的帮助文档就能轻松解决你的问题,当然,如果你在开发跨平台程序时,这本书可能是最好的参考书了。
如果单单以该书庞大的内容量来考虑,那么对于大部分人来说完全可以使用上述方式来进行学习。简单讲就是用到什么再去学相关的知识。这样的方式可以将你从大量的阅读与练习中解放出来,但长远来看,这也让你难以窥其全貌,难以从系统角度去思考你遇到的问题。
《APUE》的主要内容
诚如其名,《APUE》 不只讲解 unix-like 系统中的系统调用 api,它也花了大量的笔墨来讲解系统调用背后的环境。这个环境既包含每种系统调用的使用环境,也包含了其背后隐藏的 unix-like 系统的运行环境。
《APUE》 的全称为 Advanced programming in the unix environment,这里有两点需要注意。第一在于对 Advanced 的理解,第二在于对 unix environment 的理解,这是我们能从这本书中学习到的两方面的知识,也是非常值得思考的问题。
我对《APUE》中 AP 与 UE 的理解
AP 指的是高级编程,UE 指的是 UNIX 环境,这两个名词看似简单,其背后却蕴含了太多的东西。
我在如下两篇博文中分别描述了我对这两个概念的理解:
总结
我想《APUE》是旨在让读者了解 unix-like 系统为程序执行提供的环境。这一环境包换进程与线程的运行在内,也包括了进程间通信的方式及操作 IO 的方法等等。它能够让读者建立起 unix-like 系统提供的整套程序执行环境的知识体系,极大的加深读者对 unix-like 系统的了解。
我的建议最好还是将该书的大部分内容都阅读下,将那些 demo 都在自己的环境上运行下,这样一定会带来意想不到的收获!