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

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

ID:14246672

大小:119.50 KB

页数:4页

时间:2018-07-27

操作系统实验四进程的管道通信实验_第1页
操作系统实验四进程的管道通信实验_第2页
操作系统实验四进程的管道通信实验_第3页
操作系统实验四进程的管道通信实验_第4页
资源描述:

《操作系统实验四进程的管道通信实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、大学实验报告学院:计信学院专业:网络工程092班级:姓名学号实验组实验时间2011-11-24指导教师成绩实验项目名称实验四进程的管道通信实验实验目的1、了解什么是管道2、熟悉UNIX/LINUX支持的管道通信方式实验要求1、了解什么是管道2、熟悉UNIX/LINUX支持的管道通信方式实验原理利用linux下的vi编辑器及GCC编辑工具完成实验实验仪器PC机器linux操作系统实验步骤编写程序实现进程的管道通信。用系统调用pipe()建立一管道,二个子进程P1和P2分别向管道各写一句话:Child1issendingame

2、ssage!Child2issendingamessage!父进程从管道中读出二个来自子进程的信息并显示(要求先接收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);sprin

3、tf(outpipe,"child1processissendingmessage!");/*把串放入数组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!");w

4、rite(fd[1],outpipe,50);sleep(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为什么也能对管道进行操作?因为父进程用p

5、ipe()创建了一个无名管道,子进程1和2都知道该管道文件描述符,所以进程1和2都能对管道进行操作指导教师意见签名:年月日注:各学院可根据教学需要对以上栏木进行增减。表格内容可根据内容扩充。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。