先上**:
#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,為子程序 否則是為父程序。子程序得到的除了 段是與父程序共享以外,其他所有的都是父程序的乙個副本,子程序的所有資源都繼承父程序,得到父程序資源的副本,但是二者並不共享位址空間。兩個是單獨的程序,繼承了以後二者就沒有什麼關聯,子程序單獨執行。...