UNIX系統程式設計的瑞士軍刀 --《UNIX環境高階程式設計》書評

Liszt發表於2011-10-28

這本書UNIX時候經常提到的,大名鼎鼎的APUE。在UNIX下程式設計同學,如果沒看過此書,就好比是科幻迷沒看過星球大戰。這本書的作者,W.Richard Stevens可以說是UNIX和網路的權威人士,他所著的《TCP IP詳解》被無數論文引用。

把這本書比喻成瑞士軍刀有幾個原因

1.【全面】這本書幾乎涵蓋了UNIX環境所有的程式設計主題,從UNIX的標準化,到檔案I/O,目錄操作,然後到程式控制,程式間通訊,訊號最後是網路可以說是一應俱全。同時這本書的章節安排也非常合理,總共21章,每章的長度基本相當,沒有那種頭重腳輕,某些章節大段敖述的情況,即使從頭到尾一個一個章節讀也不會感到乏味。

2.【精緻】書中的程式碼示例質量非常高,第一次讀的時候就有感慨,程式碼質量比我專案的程式碼還要高。可以看到作者對於每個函式的返回值都有精心的考慮和細心處理,而且作者對於程式設計時的細節也很嚴謹,在設計多程式的時候,都會對併發控制,臨界區域有非常深入的思考。

3.【均衡】如果你隨手翻一下這本書,你會發現這本書的例子非常多,但是和很多國人書籍的程式碼堆砌不同的,書中的例子都是精心挑選的,每個例子的程式碼都儘可能短卻又不失嚴謹。而且作者對於每個例子都會有講解,對於一些較難理解的底層原理都會圖文並茂的講解。

4.【權威】這本書裡幾乎所有的例子都符合POSIX標準,而且FREEBSD,LINUX,MAC作業系統上進行了測試,我自己是在FREEBSD實踐的,並沒有使用作者提供隨書原始碼,而是一行行敲進去編譯執行的。程式碼沒有一點問題,甚至連細小的編譯錯誤都沒有。而且這本書裡還提供了許多系統函式的POSIX標準實現,對我們理解UNIX程式設計是一個很大的幫助。

當然這不是一本簡單的書,要讀懂這本書,首先你要有過硬的C語言功底,瞭解GCC編譯,會用GDB來做DEBUG,再則你要對UNIX的一些常用命令和常識有了解,最後就是如果有一些作業系統的基礎知識會幫助你更好的理解其中一些比較難的主題,比如什麼程式間通訊,訊號等等。

相關文章