Linux下实现管道

来源:互联网 发布:mac 当前用户路径 编辑:程序博客网 时间:2024/05/16 17:39

运用管道知识做了单工通信的程序

pipeA.c代码如下:

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
int main()
{
char name[20]="first.pipe";
char buff[256];
int r;
int fd;
//创建管道
r=mkfifo(name,0666);
if(-1==r)printf("mkfifo error%m\n"),exit(-1);
printf("mkfido %m\n");
//打开管道
fd=open(name,O_RDONLY);
if(-1==fd)printf("open error %m\n"),unlink(name),exit(-1);
printf("open %m\n");
while(1)
{
r=read(fd,buff,sizeof(buff)-1);
if(r>0)
{
buff[r]=0;
printf(">>>%s\n",buff);
}
}
return 0;
}


pipeB.c代码如下:

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
int main()
{
char name[20]="first.pipe";
int r;
char buff[256];
int fd;
//打开管道
fd=open("/root/first.pipe",O_WRONLY);
if(-1 == fd) printf("open error:%m\n"),unlink(name),exit(-1);
printf("open %m\n");
while(1)
{
r=read(0,buff,256);
if(r>0)
{
write(fd,buff,r);
}
}
return 0;
}


运行成功,由于时间关系 图片就没发了

欢迎提问,做的不好的谢谢指出^-^....

2 0
原创粉丝点击