一、程序建立
在pid=fork()之前,只有乙個程序在執行,但在這條語句執行之後,就變成兩個程序在執行了,這兩個程序的共享**段,將要執行的下一條語句都是if(pid==0). 兩個程序中,原來就存在的那個程序被稱作「父程序」,新出現的那個程序被稱作「子程序」,父子程序的區別在於程序識別符號(pid)不同.
例:#include
#include
int main(void)
輸出:count = 1
count = 1
思考:count++被父程序、子程序一共執行了兩次,為什麼count的第二次輸出為什麼不為2?
結果:子程序的資料空間、堆疊空間都會從父程序得到乙個拷貝,而不是共享。在子程序中對count進行加1的操作,並沒有影響到父程序中的count值,父程序中的count值仍然為0
linux程序控制程式設計
一 程序與程式 程式是放到磁碟的可執行檔案 程序是指程式執行的例項 程序是動態的,程式是靜態的 程式是有序 的集合 程序是程式的執行。通常程序不可在計算機之間遷移 而程式通常對應著檔案 靜態和可以複製。程序是暫時的,程式使長久的 程序是乙個狀態變化的過程,程式可長久儲存。程序與程式組成不同 程序的組...
Linux 程序控制程式設計
1 fork 在linux 中建立乙個新程序的惟一方法是使用fork 函式。fork 函式是linux 中乙個非常重要的函式,和 讀者以往遇到的函式有一些區別,因為它看起來執行一次卻返回兩個值。難道乙個函式真的能返回兩個值 嗎?希望讀者能認真地學習這一部分的內容。1 fork 函式說明。fork 函...
linux程式設計之程序控制
一 fork include pid t fork void 返回值 有兩個,乙個是子程序的id,另乙個為零。當返回值為0時,進入子程序,大於0進入父程序,返回 1時建立程序錯誤。子程序與父程序的比較 1 子程序與父程序的程序id不同。且父程序id不同。2 記憶體布局 子程序是父程序的副本,其中子程...