#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<sys/stat.h>
#include<fcntl.h>
#define _PATH_NAME_ "/tmp/file.tmp"
#define _SIZE_ 100
int main() {
int ret = mkfifo(_PATH_NAME_, S_IFIFO | 0666);
if (ret == -1) {
perror("make fifo error\n");
return 1;
}
char buf[_SIZE_];
memset(buf, '\0', sizeof(buf));
int fd = open(_PATH_NAME_, O_WRONLY);//只写
while (1) {
fgets(buf, sizeof(buf) - 1, stdin);
int ret = write(fd, buf, strlen(buf) + 1);
if (ret < 0) {
printf("write error");
break;
}
}
close(fd);
return 0;
}
//Server - Only Open FIFO
#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<sys/stat.h>
#include<fcntl.h>
#define _PATH_NAME_ "/tmp/file.tmp"
#define _SIZE_ 100
int main() {
char buf[_SIZE_];
memset(buf, '\0', sizeof(buf));
int fd = open(_PATH_NAME_, O_WRONLY);//只写
while (1) {
fgets(buf, sizeof(buf) - 1, stdin);
int ret = write(fd, buf, strlen(buf) + 1);
if (ret < 0) {
printf("write error");
break;
}
}
close(fd);
return 0;
}
//Server - Only Open FIFO
#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<sys/stat.h>
#include<fcntl.h>
#define _PATH_NAME_ "/tmp/file.tmp"
#define _SIZE_ 100
int main() {
char buf[_SIZE_];
memset(buf, '\0', sizeof(buf));
int fd = open(_PATH_NAME_, O_WRONLY);//只写
while (1) {
fgets(buf, sizeof(buf) - 1, stdin);
int ret = write(fd, buf, strlen(buf) + 1);
if (ret < 0) {
printf("write error");
break;
}
}
close(fd);
return 0;
}
//Client
#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<string.h>
#define _PATH_NAME "/tmp/file.tmp"
#define _SIZE_ 100
int main() {
int fd = open(_PATH_NAME, O_RDONLY); //只读
if (fd < 0) {
perror("open file error");
return 1;
}
char buf[_SIZE_];
memset(buf, '\0', sizeof(buf));
while (1) {
int ret = read(fd, buf, sizeof(buf));
if (ret < 0) {
printf("read end or error\n");
break;
}
printf("%s", buf);
}
close(fd);
return 0;
}
//两写两读
//Server
#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<sys/stat.h>
#include<fcntl.h>
#define _PATH_NAME_ "/tmp/file.tmp"
#define _SIZE_ 100
int main() {
int ret = mkfifo(_PATH_NAME_, S_IFIFO | 0666);
if (ret == -1) {
perror("make fifo error\n");
return 1;
}
char buf[_SIZE_];
memset(buf, '\0', sizeof(buf));
int fd = open(_PATH_NAME_, O_WRONLY);//只写
while (1) {
fgets(buf, sizeof(buf) - 1, stdin);
int ret = write(fd, buf, strlen(buf) + 1);
if (ret < 0) {
printf("write error");
break;
}
}
close(fd);
return 0;
}
//Server - Only Open FIFO
#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<sys/stat.h>
#include<fcntl.h>
#define _PATH_NAME_ "/tmp/file.tmp"
#define _SIZE_ 100
int main() {
char buf[_SIZE_];
memset(buf, '\0', sizeof(buf));
int fd = open(_PATH_NAME_, O_WRONLY);//只写
while (1) {
fgets(buf, sizeof(buf) - 1, stdin);
int ret = write(fd, buf, strlen(buf) + 1);
if (ret < 0) {
printf("write error");
break;
}
}
close(fd);
return 0;
}
//Client
#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<string.h>
#define _PATH_NAME "/tmp/file.tmp"
#define _SIZE_ 100
int main() {
int fd = open(_PATH_NAME, O_RDONLY); //只读
if (fd < 0) {
perror("open file error");
return 1;
}
char buf[_SIZE_];
memset(buf, '\0', sizeof(buf));
while (1) {
int ret = read(fd, buf, sizeof(buf));
if (ret < 0) {
printf("read end or error\n");
break;
}
printf("%s", buf);
}
close(fd);
return 0;
}
//Client Reader
#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<string.h>
#define _PATH_NAME "/tmp/file.tmp"
#define _SIZE_ 100
int main() {
int fd = open(_PATH_NAME, O_RDONLY); //只读
if (fd < 0) {
perror("open file error");
return 1;
}
char buf[_SIZE_];
memset(buf, '\0', sizeof(buf));
while (1) {
int ret = read(fd, buf, sizeof(buf));
if (ret < 0) {
printf("read end or error\n");
break;
}
printf("%s", buf);
}
close(fd);
return 0;
}