欢迎来到天天文库
浏览记录
ID:6750669
大小:119.50 KB
页数:4页
时间:2018-01-24
《操作系统实验四进程的管道通信实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、大学实验报告学院:计信学院专业:网络工程092班级:姓名学号实验组实验时间2011-11-24指导教师成绩实验项目名称实验四进程的管道通信实验实验目的1、了解什么是管道2、熟悉UNIX/LINUX支持的管道通信方式实验要求1、了解什么是管道2、熟悉UNIX/LINUX支持的管道通信方式实验原理利用linux下的vi编辑器及GCC编辑工具完成实验实验仪器PC机器linux操作系统实验步骤编写程序实现进程的管道通信。用系统调用pipe()建立一管道,二个子进程P1和P2分别向管道各写一句话:Child1issendingamessage!Chi
2、ld2issendingamessage!父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1,后P2)。实验内容程序部分:#include#include#includeintpid1,pid2;main(){intfd[2];charoutpipe[100],inpipe[100];pipe(fd);/*创建一个管道*/while((pid1=fork())==-1);if(pid1==0){lockf(fd[1],1,0);sprintf(outpipe,"child1
3、processissendingmessage!");/*把串放入数组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);/*互斥*/sprintf(outpipe,"child2processissendingmessage!");write(fd[1],outpipe,50);slee
4、p(5);lockf(fd[1],0,0);exit(0);}else{wait(0);/*同步*/read(fd[0],inpipe,50);/*从管道中读长为50字节的串*/printf("%s",inpipe);wait(0);read(fd[0],inpipe,50);printf("%s",inpipe);exit(0);}}}实验数据实验总结1、程序中的sleep(5)起什么作用?自我阻塞5秒。2、子进程1和2为什么也能对管道进行操作?因为父进程用pipe()创建了一个无名管道,子进程1和2都知道该管道文件描述符,所以进
5、程1和2都能对管道进行操作指导教师意见签名:年月日注:各学院可根据教学需要对以上栏木进行增减。表格内容可根据内容扩充。
此文档下载收益归作者所有