写在前面:小生纯业余选手,开此博仅仅是为了积累,纯当笔记来用。如有看官光临小生博客,请不要相信我的代码就是正确的。如果您发现了错误也恳请耽误您一点时间,请您在下面指出来,不胜感激!
如果发现一些笔记的说法完全是错误的请建议我删除!
匿名管道就是没有名字得管道,通过pipe(fd)得以创建
这里貌似有点模糊
匿名管道应该打开了两个通道,一个用于写数据,一个用于读数据。这样多个进程可以同时打开一个匿名管道获取某一个通道来读写数据
先贴代码
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
int fd[2];
char buf[20];
printf("%d\n",getpid());
int r = pipe(fd);
write(fd[1],"hello",5);
write(fd[1],"world",5);
r = read(fd[0],buf,20);
buf[r] = 0;
printf("%s\n",buf);
write(fd[1],"louis",5);
r = read(fd[0],buf,5);
buf[r] = 0;
printf("%s\n",buf);
return 0;
}
程序运行的时候hello不会被world覆盖