要求:編寫程式實現程序的管道通訊。使用系統呼叫pipe()建立乙個管道,二個子程序p1和p2分別向管道各寫一句話:
child 1 is sending a message!
child 2 is sending a message!
父程序從管道中讀出二個來自子程序的資訊並顯示(要求先接收p1,再接收p2)。
初步理解:和以前的乙個父程序建立兩個子程序類似,這裡只新增了乙個先接收子程序1,再接收子程序2的要求,我們只需要在父程序裡阻塞,等待子程序1執行完畢,然後再建立子程序2,再在父程序裡阻塞,等待子程序2建立完成,這樣就實現了先接受子程序1再接收子程序2的需求。
**:
#include
#include
#include
#include
#include
#include
void
main()
pid =
fork()
;if(pid<0)
if(pid ==0)
else
if(pid ==0)
else
}}
謝謝大家的**,如有錯誤請指正,謝謝!csdn記錄成長! Linux應用程式設計 程序通訊
通訊方式有管道pipe,訊號 一 pipe 管道分兩種無名管道,有名管道。1 無名管道 父程序和子程序可通過無名管道傳輸資料,管道有兩個口,一端寫一端讀,半雙工通訊。可以當作檔案進行操作,所以建立的管道會有兩個檔案描述符fds 0 和fds 1 fds 0 用於讀,fds 1 用於寫,關係如圖。實驗...
執行緒 應用程式域 程序
程序是個管理單元,管理著應用程式的多個執行緒,其中有個預設的主線程,其他執行緒都是從其他執行緒中派生出來的。執行緒一旦被建立,主線程是無法干涉它的。執行緒的銷毀在.net中是通過丟擲乙個異常,來終止這個執行緒的。在.net出現以前,乙個程序下,只能執行乙個應用程式,而在,net出現後,乙個程序下,可...
Linux應用程式設計之程序程式設計
程序同步 一組併發的程序按照一定的順序執行的過程稱為程序間的同步。獲取id include pid t getpid void 獲取本程序id pid t getppid void 在子程序中獲取父程序id 程序建立 include pid t fork void fork 的奇妙之處在於它被呼叫一...