上周末開始看《UNIX/Linux系統編程手冊》這本書,周末的時間看到第四章,覺得這本書比直接看Linux核心要好接受的多,因為從代碼入手,可以更好的理解,比如第三章系統調用的講解,如果只是理論方面可能比較枯燥,那麼這本書中的代碼,如何運行呢。 下載代碼
這本書的首頁.代碼版本有兩個:
Distribution version: a tarball of the source code that includes extra material not shown in the book. Probably, this is the version of the code that you want.
Book version: a tarball of the source code as it appears in the book.
可以根據自己的選擇下載,我下載的是第一個版本,可以點擊上面的連結下載,如果下載失敗,可以去首頁下載.
下載代碼,解壓之後,如下圖所示:
在tlpi-dist目錄下執行make,然後去每一個檔案下單獨查看,可以發現每一個.c檔案都產生了對應的可執行檔.在每一個子檔案夾中都有一個make檔案,有關make的作用我們可以理解為我們寫了.c檔案要去編譯, 由於要包含作者的錯誤列印等標頭檔,所以使用gcc不再像我們之前gcc -o hello hello.c這樣簡單,要用include包含標頭檔等,而makefile就比較簡單,每次代碼有更改直接在對應的目錄下執行make,就會產生新的可執行檔.
我們以第四章一個代碼,作為例子:
我們在運行程式前先建立一個hello,裡面存入內容,執行,/copy會看到相應的用法,這是作者利用usageErr列印出來的內容,然後我們按照相應提示去執行,驗證,當修改相應代碼後,再次執行make,會重建可執行檔.
關於第三章的可變參數部分,請參考我的筆記,如果有任何疑問與問題,歡迎與我交流討論
如果下載代碼之後make出錯,沒有產生相應的可執行檔,請升級gcc版本,參考Segmentfault相應回答