3.5命名管道的数据通信编程实现(第二阶段)
代码展示
read.c
#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
#include<errno.h>
#include <fcntl.h>
//int mkfifo(const char *pathname, mode_t mode);
int main()
{
char buf[1024]= {0};
int nread = 0;
if( mkfifo("./file",0600) == -1 && errno != EEXIST){
printf("mkfifo failuer\n");
perror("why");
}
int fd = open("./file",O_RDONLY);
printf("open success\n");
while(1){
nread = read(fd,buf,30);
printf("read %d byte from fifo,context:%s\n",nread,buf);
}
close(fd);
return 0;
}
write.c
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <string.h>
//int mkfifo(const char *pathname, mode_t mode);
int main()
{
char *str = "message from fifo";
int fd = open("./file",O_WRONLY);
int cnt = 0;
printf("write success\n");
while(1){
write(fd,str,strlen(str));
sleep(1);
if(cnt == 5){
break;
}
// cnt++;
}
close(fd);
return 0;
}