运用管道知识做了单工通信的程序
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;
}
运行成功,由于时间关系 图片就没发了
欢迎提问,做的不好的谢谢指出^-^....