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