位元詩人 [書籍回顧] C Programming Cookbook 讀後回顧

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

以 C 語言為主體的程式食譜 (cookbook) 算是相對少見的題材。一方面是當代高階語言眾多,以純 C 寫應用程式的機會比較少。另一方面是現在網路資訊發達,初級的問題透過網路很快就可以找到答案。Packt 所出版的 C Programming Cookbook 是近年來少的 C 語言程式食譜。本文會帶著讀者來看一下這本書籍的內容。

C Programming Cookbook

本書綱要

本文包含了以下的內容:

  • 陣列的使用範例
  • 字串的使用範例
  • 函式的使用範例
  • 指標的使用範例
  • 低階檔案處理
  • 利用執行緒撰寫共時性程式
  • 撰寫多行程程式
  • 利用 socket 撰寫網路程式
  • 連接 MySQL 資料庫

另外,Packt 很大方地在 GitHub 上面公開本書的範例程式碼。本書的讀者就不用逐行手動輸入這些範例程式,可以快速地觀摩並體驗這些程式。

內容介紹

本書的前半段偏向演算法相關的內容,乍看不太實用。但這在 C 語言教材很難完全避免。比起其他的高階語言,C 語言相對沒那麼高階,有些在其他語言可以用函式庫很快解決的事,在 C 語言得自行實作。

由於書籍的容量限制,每個主題的範例都不多。其實重點並不是去記這些範例,而是藉由這些範例理解陣列、字串、指標、檔案物件等特性的用法,之後就可以自己根據其原理加以變化。

第二部分是關於共時性程式,在 C 語言中是使用傳統的執行緒和行程來寫。本書中未使用 C11 的執行緒函式庫,而是直接用類 Unix 系統上相關的函式庫。但原作者似乎是在 Windows 上展示這些範例。如果讀者使用 Windows,可以用 MinGW 來編譯這些範例程式,這在原書上並未詳細說明。

第三部分是關於網路程式,本書選擇 socket 層級來寫網路程式。同樣是以類 Unix 系統上的函式庫為主,對 Windows 使用者來說就不太適用。由於篇幅的限制,這段內容僅展示基本的傳接訊息。

最後一部分是連結 MySQL 資料庫。基本上就是中規中矩的 MySQL C API 範例教學。由於 MySQL 還算是流行度高的資料庫,本章有一定實用價值。要注意本書的範例直接把 MySQL 帳密寫死在程式碼中,而且沒有防 code injection,如果要寫對外溝通的程式,不宜原封不動照抄這些範例。

本書為了簡化 C 程式碼,在範例上做了一些簡化,有一些程式的錯誤處理不是相當嚴謹。如果要把這些程式碼用在自己的專案上,最好還是稍加修改一下。

評語

一般來說,程式食譜類的書籍會以各種應用情境為主,著重在套件的介紹及使用,不會放太多內容在演算法上。相對來說,本書真正和應用程式相關的內容偏少,和演算法相關的內容稍微多了些。但 C 語言中階書籍相對缺乏,如果想要在學完核心語法後更進一步,本書仍有一定的參考價值。

關於作者

身為資訊領域碩士,位元詩人 (ByteBard) 認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

位元詩人喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,位元詩人將所學寫成文章,放在這個網站上和大家分享。