Linux多工程式設計(六)---編寫多程序程式及其程式碼
實驗目的
通過編寫多程序程式,熟練掌握fork()、exec()、wait()和waitpid()等函式的使用,進一步理解在Linux中多程序程式設計的步驟。
實驗內容
該實驗有3個程序,其中一個為父程序,其餘兩個是該父程序建立的子程序,其中一個子程序執行“ls -l”指令,另一個子程序在暫停5s後異常退出。父程序先用阻塞方式等待第一個程序的結束,然後用非阻塞方式等待另一個子程序的退出,待收集到第2個子程序結束的訊息後,父程序就返回。
實驗步驟
該實驗的流程圖如下
實驗原始碼
先看一下下面的程式碼,這個程式能得到我們所希望的結果嗎?它的執行會產生幾個程序?
執行結果如下圖
也有可能會出現下面的結果
分析執行結果可以指知道,這裡其實是產生了3個子程序,在子程序2中又產生了一個子程序1。
下面咱們貼出正確的實驗程式碼:
執行結果如下圖
不論程式執行多少次,結果都是一樣的。對比上一個結果,咱們就可以理解多程序該怎麼建立了。一定要明確建立子程序的父程序是哪一個。
相關實驗程式碼上傳到網站,multi_proc_wrong.c點此下載,multi_proc.c點此下載
/************************************************************************************************
*歡迎關注本人公眾號:BigBearIT,一起分享交流知識,更多精彩等著你!
*************************************************************************************************/