Linux建立新程序

2021-10-11 20:59:02 字數 679 閱讀 8400

在linux系統中,建立新程序涉及到兩個系統呼叫api:分別是fork()和exec().

首先,在當前程序中,呼叫fork()複製出自身的乙個拷貝,此時主要涉及到核心中與程序上下文相關的資料複製操作,而使用者**和資料則採用寫時複製技術共享同乙份資源。當乙個程序複製後,原程序稱為父程序,新程序則稱為子程序.

然後,在子程序用乙個新程序映象替代自身,即從磁碟中裝入乙個新程式,並作為當前的子程序執行.這可通過呼叫exec()函式簇中的乙個函式來實現,exec()函式簇中的所有函式都完成同樣的工作,所不同的是作為命令列傳遞到新程式中的引數的組織形式.

/* forkexec.c */

#include

int main(int argc, char *ar**)

printf("parent: pid = %d childpid = %d\n",getpid(), pid);

childpid = wait(&status);

printf("parent: child %d died\n", childpid);

return 0;

}其實,所有的程序都可以使用fork和exec函式呼叫來啟動另乙個新程序,實際上linux的所有程序都是以這種方式啟動的,在系統啟動以後,系統程序init開始執行,它完成了啟動其它程序的任務,init程序的程序id號總為1。

Linux基礎 建立新程序

好久沒學習了,最近都在忙著上班的事情,過年後這段時間感覺每天都有事情做,忙忙忙,學linux感覺說實話,有點枯燥,比當初學fpga還要枯燥。真的是畢業之後,再去學習的動力就下降很多嗎。但是還是要堅持啊。程式並不能單獨執行,只有將程式載入到記憶體中,系統為他分配資源後才能夠執行,這種執行著的程式稱之為...

linux建立新程序的過程

linux系統中建立新程序使用fork 系統呼叫。所有程序都是通過複製程序0而得到的。都是程序0的子程序。linux建立新程序的過程 1.系統首先在任務陣列中找出乙個還沒有被任何程序使用的空項。如果陣列已滿,沒有空項,則fork系統呼叫出錯返回。系統將會為新建程序在記憶體區中分配一頁記憶體來存放其任...

聊聊Linux核心建立新程序

計算機是一種精密的儀器,有一點錯誤都是不能成功執行的,計算機軟體是靠乙個個程式組成的,而程式又是一系列指令所組成。通過執行這樣的一條條指令,計算機就能完成乙個個任務了。這裡有兩個概念比較容易混淆,平時我們在學習計算機的時候也是這樣,那就是程序和程式的區別,這也是這篇部落格的主要內容,程序。簡單點講,...