以前做的通道实验
编写一段程序,使用系统调用pipe()创建一无名管道,同时父进程创建一个子进程p1;并使子进程通过管道向父进程传递数据“p1 process is sending data to father.”,父进程通过管道接收到该字符串后输出。 目的: 创建无名管道,实现基于管道的进程间数据通信,掌握管道通信的方法及特征;并进一步理解互斥与同步的含义
#include<stdio.h>
#include<stdlib.h>
main()
{
int r,p1,fd[2];
char buf[50],s[50];
pipe(fd);
while((p1=fork())==-1);
if(p1==0)
{
sprintf(buf,"p1 is sending data to father.");
printf("child p1!\n");
write(fd[1],buf,50);
sleep(5);
exit(0);
}
else
{
wait(0);
if((r=read(fd[0],s,50))==-1)
printf("can not read pipe\n");
else printf("%s\n",s);
}
}