Linux下实现管道

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

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值