通过有名管道实现两个进程单向通讯

来源:互联网 发布:香草天空知乎 编辑:程序博客网 时间:2024/06/06 01:48

写进程

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <errno.h>void writefifo(){char buf[128];memset(buf, 0, sizeof(buf));int fd = open("fifo", O_WRONLY);if (fd == -1){printf("error is %s\n", strerror(errno));}while (1){scanf("%s", buf);if (buf[0] == '0')break;write(fd, buf, sizeof(buf));//memset(buf, 0, sizeof(buf));}close(fd);}int main(void){writefifo();return EXIT_SUCCESS;}

读进程

void listenfifo(){int len = 0;char buf[128];memset(buf, 0, sizeof(buf));int fd = open("fifo", O_RDONLY);if (fd == -1){printf("error is %s\n", strerror(errno));}while ((len = read(fd, buf, sizeof(buf))) > 0){printf("%s\n", buf);//memset(buf, 0, sizeof(buf));}close(fd);}int main(void){listenfifo();return EXIT_SUCCESS;}


0 0
原创粉丝点击