最近利用空餘時間看了一下《unix/linux程式設計實踐教程》,原書名為:understanding unix/linux programming: a guide to theory and practice。感覺這本書寫的還是不錯的,講的unix/linux系統程式設計,主要是通過講解unix系統上的命令程式是如何實現的來分析了unix系統的原理和系統程式設計。比如講解了who,cp,ls,pwd等命令用unix c語言應該怎麼實現。通過這種講解方式,不僅學會了unix的系統程式設計,而且還弄懂了unix作業系統的一些原理性的東西。感覺寫的非常不錯。
那麼,unix/linux下的系統程式設計要學哪些東西呢?通過本書,感覺主要學習一下內容:
1。unix/linux 下基本的c語言程式設計,包括基本編輯工具的使用,vim,emacs等任意一種,gcc,gdb等編譯除錯工具的使用,以及unix系統下的基本命令的使用以及c語言基本語法。也就是要能夠在unix系統下能使用開發工具寫出最基本的c語言程式。
2。檔案的讀寫(read,write,close以及檔案描述符和檔案屬性的理解),目錄的操作,以及對應於這些系統呼叫的c庫函式。
3。裝置的操控(在unix中,裝置是作為檔案來操作的,提供了與檔案一致的操作介面)。i/o重定向。
4。訊號機制(signal)。
5。程序的建立,執行(fork,exec,exit,wait,pipe等),程序之間的通訊(ipc:檔案/命名管道/共享記憶體/socket/訊號量)
6。執行緒的使用(pthread_create, pthread_join, pthread_mutex_lock, pthread_mutex_unlock, pthread_cond_wait, pthread_cond_signal)
7。socket網路程式設計。(socket, bind, listen, accept, sendto, recvfrom),理解網路程式設計的模型。(同步與非同步i/o)
對於這些知識,不僅僅是學會這些系統或者函式呼叫,跟重要的是理解其程式設計模型。然後就是結合實際需求,利用這些基本知識進行開發了。很多時候,解決實際問題的方法比這些東西更重要,但是,這些基本知識是你開發的必備知識。
最後,推薦想學習unix或者linux程式設計的一定要看看這本書。另外,如果要做應用開發的話,可以再學習一下gui開發(gtk++或者qt)。
Unix Linux環境程式設計學習總結
這段時間學習了unix環境高階程式設計,在這裡呢,先給大家推薦一本書 unix環境高階程式設計 這本書在這個領域可是聖經級別的。先說一下這段時間的學習感受,起初學習了幾天之後,休息了一段時間,於是自己照著那本聖經開始看了起來,有很多難懂的地方,看著看著,難免心態有點崩潰,但是還是咬著牙看了下去,雖然...
UNIX LINUX程式設計書籍
排名不分先後 1.c語言 高質量程式設計指南 c語言介面與實現 c語言解惑 c專家程式設計 c陷阱與缺陷 c語言參考手冊 2.linux應用開發 unix網路程式設計 第1,2卷 unix環境高階程式設計 linux系統程式設計 unix linux程式設計實踐教程 linux程式設計 第3版 un...
Unix Linux程式設計 socketpair
管道內部傳輸的是位元組流,tcp socket傳輸的也是位元組流,區別在於 socket的基礎api中有乙個socketpair函式。它能夠方便的建立雙向管道 include include socketpair 函式用於建立一對無名的 相互連線的套接子。引數 domain必須是unix本地域協議族...