![](https://i-blog.csdnimg.cn/blog_migrate/7cbb9129e65b2b776b745a21cac9c7d2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b1938df7c85bd57d1c70c1b15f36009b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2670f76131518bde93c27a987977c799.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d44e27c16e2ecf0baa3de73cc2b9b22.png)
//read.c
#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
int main() {
int fd = open("test", O_RDONLY);
if(fd == -1) {
perror("open");
exit(0);
}
while(1) {
char buf[1024] = {0};
int len = read(fd, buf, sizeof(buf));
if(len == 0) {
perror("写端断开链接\n");
break;
}
printf("recv buf: %s\n",buf);
}
close(fd);
}
//write.c
#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<string.h>
int main() {
int ret = access("test", F_OK);
if(ret == -1) {
perror("access");
ret = mkfifo("test", 0664);
if(ret == -1) {
perror("mkfifo");
exit(0);
}
}
int fd = open("test", O_WRONLY);
if(fd == -1) {
perror("open");
exit(0);
}
for(int i = 0; i < 100; i++) {
char buf[1024];
sprintf(buf,"hello, %d\n",i);
printf("write data : %s", buf);
write(fd,buf,strlen(buf));
sleep(1);
}
close(fd);
}