程序環境 三

2021-09-11 18:07:04 字數 365 閱讀 7666

共享庫可以使我們的可執行程式檔案不需要包含公用的庫函式,而只需要在所有程序都可引用的儲存區中儲存這個庫的乙個例項副本即可。

程式第一次呼叫庫函式時,使用動態鏈結的方法將程式與共享庫函式相連線。這減少了可執行程式的長度,但是增加了執行時間開銷。這就是用時間換空間的方法。這種時間開銷發生在該程式第一次被呼叫時。

共享庫的另乙個優點是可以用庫函式的新版本替代老版本而無需對使用該庫的程式重新連線編輯(假定引數的數目和型別都沒有發生改變)。

在不通的系統中,程式可能使用不同的方法說明是否要使用共享庫。比較典型的由cc和ld命令的選項。

(二十)程序 程序環境

libc中定義的全域性變數environ指向環境變數表,environ沒有包含在任何標頭檔案中,所以在使用時要用extern宣告。例如 include int main void 由於父程序在呼叫fork建立子程序時會把自己的環境變數表也複製給子程序,所以a.out 編譯以上程式所生成的應用程式 列...

Unix程序環境之3 程序環境列表

1 程序環境 簡介當乙個程序 proecss 呼叫另乙個程式 program 時,同時會傳遞這個程式執行的環境列表 environment list 程序環境列表是乙個字元指標陣列,每個字元指標是乙個以空字元 null terminated 結束的c 字串。字元指標陣列位址包含在全域性變數envir...

《unix高階環境程式設計》程序環境 程序終止

當核心執行c程式時 使用乙個exec函式執行 在呼叫mian函式前先呼叫乙個特殊的啟動例程。可執行程式檔案將此啟動例程指定為程式的起始位址。下面是c程式啟動和終止的流程,由圖中可以知道,程序的終止根據不同的函式呼叫是不一樣的,其中 exit和 exit函式是終止程序直接進入核心,exit函式則先執行...