UNIX系統程式設計1

2021-05-22 11:25:02 字數 1157 閱讀 4213

$man 你想查詢的內容

如果man你也不會用也不要緊,那你就

$man man

一下,呵呵。只可惜好像還沒有翻譯成中文,對於像我這樣英文水平還有待提高的朋友來說讀起來有點麻煩。最後還有乙個好工具就是網路,有什麼不會的google一下好多問題都能解決。

好,囉嗦的半天,說歸正傳,免得給大家造成光說不練的印象。

第一章:什麼是系統程式設計

unix系統程式設計,簡單的說就是「c語言+系統呼叫(system call)」,學會了c語言再知道一些系統呼叫的方法,其實就可以進行unix系統程式設計了。那什麼又是系統呼叫呢,其實初學者就把它看當成是函式用就可以了。這些「函式」是幹什麼用的呢,大家知道作業系統核心管理著我們的計算機資源,比如cpu,記憶體,硬碟等等。應用程式是無法直接訪問到它們的。那我們想利用這些資源怎麼辦呢,核心就給我們提供了乙個介面,我們可以利用這個介面來進行計算機資源的使用。核心也通過介面來判斷我們的使用請求是否合法,合法的的提供資源,不合法的給與乾掉。就好比是金庫,銀行和儲戶。金庫裡有要多地人民幣,這就是資源。然而我們儲戶卻無法直接接觸到這些可愛的人民幣,因為它們是通過銀行來管理的,銀行就好比是核心。但我們怎麼樣才能從金庫裡取出錢來呢,我們可以去銀行視窗辦理存款取款手續,這就是系統呼叫。當然,每個人的取款限額都不一樣,大款的存款多,他可以取幾百萬甚至更多,而我存款少,取出一萬塊就已經不錯了。這就是使用者的系統呼叫許可權不同。還有就是銀行行長,他對這個金庫的許可權更大(root),當然他的責任也更大,他的乙個錯誤決定有可能導致銀行破產。這事可就大了。還有一種情況,乙個在銀行裡沒有什麼存款的人,卻通過一些技術手段,得到了乙個大款的密碼甚至是偽裝成銀行行長,把金庫裡的錢全提走了,這就是黑客。想想這種感覺你就知道為什麼世界上有這麼多黑客樂此不疲了。還有一些人沒有什麼「技術含量」直接「搶銀行」,把你的計算機都抱走了。那你只有哭了,金庫裡的錢丟了,好在「房子」還在呀,這回連「房子」也丟了。依照這個比喻,那木馬是什麼呢?對,就是你的銀行職員裡出了內奸了。哈哈。好了不胡扯了,我了這麼多例子就是想告訴大家,銀行(核心)本身來說還是十分堅固穩定的,問題出在如何通過視窗(系統呼叫)安全地使用它。這也是學習unix系統程式設計是應該注意的問題。從下乙個帖子開始說說說程序(process)和如何生成乙個程序。

unix系統程式設計

popen pclose popen介面定義 include file popen const char command,const char type int pclose file stream popen函式會建立乙個管道,並且建立乙個子程序來執行shell,shell會建立乙個子程序來執行c...

Unix系統程式設計()brk,sbrk

在堆上分配記憶體 程序可以通過增加堆的大小來分配記憶體,所謂堆是一段長度可變的連續虛擬記憶體,始於程序的未初始化資料段末尾,隨著記憶體的分配和釋放而增減。通常將堆的當前記憶體邊界稱為 program break 下面也會學習一族函式brk,sbrk和malloc。調整program break br...

UNIX系統程式設計1《筆記》

linux系統程式設計課堂筆記 1 20121013 一 每個應用程式是獨享的 1.對於32 位的cpu 來說,應用程式程式設計和核心共占有 4g的空間 應用層是0 3g 核心層是 3g 4g 2.每個程式是獨享的 每個程式都有3g 的空間來進行使用,這個空間是虛擬記憶體,在實際的呼叫的時候,每個應...