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

2021-10-08 21:44:47 字數 736 閱讀 8377

先上**:

#include

#include

intmain()

else

if(ret >0)

}else

}return0;

}

pid_t getpid(void); 誰呼叫獲取誰的程序pid

pid_t getppid(void); 誰呼叫獲取誰的父程序pid

整體流程如下

輸入ps aux | grep ./test檢視程序控制資訊:

能看到有兩個程序正在執行,但是看不出來兩程序中的差異和聯絡,因此輸入ps -ef,輸入後能看到當前程序的pid和當前程序的父程序ppid。通過這兩個數字資訊我們可以確定父程序和子程序。

我們進行過濾檢視我們想看的,ps -ef | grep ./test

其中第二列為當前程序,第三列為當前程序的父程序。

從上圖容易看到20178為我們當前建立的程序,父程序為20177。

檢視父程序的父程序,ps aux | grep 19583結果如下:

由圖可以知道父程序的父程序是終端處理器bash(命令列直譯器)。

一旦建立出來子程序之後,父程序和子程序就是搶占式執行;

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

父程序和子程序是並行執行的,先執行哪個是不確定的,在小紅帽系統中,先執行的是子程序,在ubuntu系統中,父程序是先執行的。其實誰先執行不重要了,一般在程式設計中,把父程序當做守護程序使用,用乙個waitpid pid,statloc,0 pid 等待子程序的結束,父程序一直阻塞在這個函式中,阻塞或...

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

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

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

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