-
大小: 1.16 KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2024-08-13
- 語言: 其他
- 標(biāo)簽:
資源簡介
進(jìn)程的管道通信
編制一段程序,實現(xiàn)進(jìn)程的管道通信,使用系統(tǒng)調(diào)用pipe()建立一個管道文件;兩個子進(jìn)程P1和P2
分別向管道各寫一句話:
Child1 is sending a message!
Child2 is sending a message!
而父進(jìn)程則從管道中讀出來自于兩個子進(jìn)程的信息,顯示在屏幕上。要求父進(jìn)程先接收子進(jìn)程P1發(fā)來的
消息,然后再接收子進(jìn)程P2發(fā)來的消息。
編制一段程序,實現(xiàn)進(jìn)程的管道通信,使用系統(tǒng)調(diào)用pipe()建立一個管道文件;兩個子進(jìn)程P1和P2
分別向管道各寫一句話:
Child1 is sending a message!
Child2 is sending a message!
而父進(jìn)程則從管道中讀出來自于兩個子進(jìn)程的信息,顯示在屏幕上。要求父進(jìn)程先接收子進(jìn)程P1發(fā)來的
消息,然后再接收子進(jìn)程P2發(fā)來的消息。
代碼片段和文件信息
#include
#include
#include
#define?sum?50
char?*message1?=?“Child?process1?is?sending?a?message!“;
char?*message2?=?“Child?process2?is?sending?a?message!“;
main()
{
int?p1p2;?/*定義兩個進(jìn)程號參數(shù)*/
???????int?a[2];
???????char?b[50];
???????pipe(a);?/*創(chuàng)建匿名管道,a[0]為讀端,a[1]為寫端*/
???while?((p1=fork())==?-1);
??????if(p1==0)
??{
???????lockf(a[1]10);?/*鎖定管道寫端,保證寫入數(shù)據(jù)的完整性*/???????write(a[1]message1sum);?/*向管道寫端a[1]寫入message1中的數(shù)據(jù),寫完后該數(shù)據(jù)即可以從讀端a[0]讀出*/?????????
sleep(3);??????/*等待讀進(jìn)程讀出數(shù)據(jù)*/????????
?lockf(a[1]00);?/*解鎖管道寫端*/
????????exit(0);/*?子進(jìn)程P1退出*/
??????}
??????else
?????{
??????while?((p2=fork())==?-1);
?????????if(p2==0)
????????{
????????????lockf(a[1]10);?
????????????write(a[1]message2sum);
????????????sleep(5);?/*等待讀進(jìn)程讀出數(shù)據(jù)*/
????????????lockf(a[1]00);
????????????exit(0);?/*?子進(jìn)程P2退出*/
?????????}
?????????else
????????{??????????????????
?????????????wait(0);?//等待某個子進(jìn)程退出???????????????????????????
?????????????read(a[0]bsum);??/*從管道讀端a?[0]讀取出P1或者P2寫入的數(shù)據(jù)*/
?????????????printf(“%s\n“b);
?????????????wait(0);?//等待第二個子進(jìn)程退出
?????????????read(a[0]bsum);
?????????????printf(“%s\n“b);
?????????????exit(0);?//父進(jìn)程退出
?????????}
???????}??
}?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1376??2009-01-08?22:01??進(jìn)程的管道通信\a4.c
?????文件????????330??2009-03-13?20:23??進(jìn)程的管道通信\進(jìn)程的管道通信.txt
?????目錄??????????0??2009-03-13?20:24??進(jìn)程的管道通信
-----------?---------??----------?-----??----
?????????????????1706????????????????????3
- 上一篇:計算方法上機程序之龍貝格求積公式
- 下一篇:DE2模擬的交通紅綠燈
評論
共有 條評論