操作系统实验四进程的管道通信实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大学实验报告

学院:计信学院专业:网络工程092班级:

实验步骤

编写程序实现进程的管道通信。用系统调用

P2分别向管道各写一句话:

Child 1 is sending a message!

Child 2 is sending a message!

父进程从管道中读出二个来自子进程的信息并显

pipe()建立一管道,二个子进程P1和

禾(要求先接收P1,后P2)。

程序部分:

#in elude #in elude

#in elude

in t pid1,pid2;

mai n()

{

int fd[2];

char outpipe[100],i npipe[100];

pipe(fd); /*创建一个管道*/

while ((pid1=fork( ))==_1);

if(pid1== { =0)

lockf(fd[1],1,0);

spri ntf(outpipe,"child 1 process is sending message!");

/*把串放入数组outpipe 中*/

write(fd[1],outpipe,50); /*向管道写长为50字节的串*/

sleep(5); /*自我阻塞5秒*/

lockf(fd[1],0,0); exit(0); 验}

else

内容

{

while((pid2=fork( ))==-1);

if(pid2= =0)

{ lockf(fd[1],1,0); /*互斥*/

spri ntf(outpipe,"child 2 process is sending message!");

}

write(fd[1],outpipe,50);

sleep(5); lockf(fd[1],0,0);

exit(0);

else

{ wait(0); /*同步*/

read(fd[0],i npipe,50);

prin tf("%s\n",i npipe);

wait(0);

read(fd[0],i npipe,50);

prin tf("%s\n",i npipe);

/*从管道中读长为50字节的串*/

}

}

exit(0);

}

九山工 跨第① K.i.h

桶朋01;

I# include includj <«t inl p i di h pid2«

rw i nC )

(

ini fd[2]:

h ;i r ou ip ipe [ 100] t imp i pc [ IOO ]; pipMfdh "创證-叩營逍呼 At] L Ic { ( p ]dl = rci k( > )==-l ) i L f( p id I ==0) ]«ckf( fd[l], I .(D :

spr in t fl outp ipe / ch i IJ I p r c cc s s i 、 send nts sage -:; ”把川临入数组imtpipt 屮和 krite( fd[]).ovtpipe^C): 严囱管逋写K :为50字节的串时 s ktp (5)i 严冃我ER 務吕杪椁 lockf(fd[l].0.0)i PM

■A i le{ fpi-d2«rork( >} ■■-1); iJ(pid2—4>

1 lockft fd[ 1 I .1.0); 严互斥巧 jp 「im ff mit 卩 i 卩

2 pro ITS S M se nd inp nr s^aee ! *> < wr i tc(fd[I ].cutpipe ,S0); s kep( 5);

iDffkf'f fd[ : ] , (), 0 ): ex L t< IB j

}

e 1 ir

wy i t(0):

re J d ■- f d [ 0 1 H inp i pc * bl)); 治 in W 窮\nT »inp ipe );

[rool^ltica Iho^ t r oo I]gee tes I .c -o les t [rool^loraIhos t root]# ./test

child 1 process i send ing HE s 5 a gf! child 2 process iw se nding rre s sage! | [ rool^loca I hos t rotn]# ||

实 验 数 据

"同步*f /■从・道屮St 畏为帥字%的申•/

注:各学院可根据教学需要对以上栏木进行增减。表格内容可根据内容扩充。万豆体验卡卡号:50D890668267e3349e33 密码:686d03401eefba96faba 奖品名称:

500万U豆体验卡

卡号:50De7a00c543af387fc0 密码:b26488ce65abc1787202

奖品名称:500万U豆体验卡

卡号:50Dbac638

85c802fd52e

密码:3d1c344384327b85efff 奖品名称:500万U豆体验卡

卡号:50Dd97f0765bdf6998a3 密码:48db1c14e42a2b321fac 奖品名称:

500万U豆体50D61

215eb41ae3cc919

密码:25bffae5346e7b7d2548

奖品名称:100万U 豆体验卡

卡号:10D1cab621456ab278ab

密码:709f65f32865af2559c2

奖品名称:100万U 豆体验卡卡号:10D8f1d6a4b953f3474e 密码:

相关文档
最新文档