父程序和子程序的關係(Linux C 程式設計)

2021-10-01 15:18:58 字數 713 閱讀 6121

父程序和子程序是並行執行的,先執行哪個是不確定的,在小紅帽系統中,先執行的是子程序,在ubuntu系統中,父程序是先執行的。

其實誰先執行不重要了,一般在程式設計中,把父程序當做守護程序使用,用乙個waitpid(pid,&statloc,0) != pid 等待子程序的結束,父程序一直阻塞在這個函式中,阻塞或不阻塞跟第三個引數有關係。

#include

#include

#include

#include

intmain()

else

if(pid==0)

else

return0;

}

結果(ubuntu中):明顯先列印了父程序

}結果(ubuntu中):父程序等待了子程序結束

Linux中父程序和子程序關係講解

先上 include include intmain else if ret 0 else return0 pid t getpid void 誰呼叫獲取誰的程序pid pid t getppid void 誰呼叫獲取誰的父程序pid 整體流程如下 輸入ps aux grep test檢視程序控制資...

子程序 父程序 子執行緒 父執行緒之間的關係

在父程序中通過fork 函式可以建立子程序,如果返回值 0,為子程序 否則是為父程序。子程序得到的除了 段是與父程序共享以外,其他所有的都是父程序的乙個副本,子程序的所有資源都繼承父程序,得到父程序資源的副本,但是二者並不共享位址空間。兩個是單獨的程序,繼承了以後二者就沒有什麼關聯,子程序單獨執行。...

Linux中建立新的程序,父程序等待子程序的退出

乙個程序可以呼叫fork 來複製自己,複製的時候這兩個程序完全相同,之後便分道揚鑣。標頭檔案 include 函式原型 pid t result fork void 返回值 根據不同的返回值,可以判斷當前執行的是子程序還是父程序 父程序呼叫wait函式等待子程序退出 標頭檔案 include inc...