无名管道pipe的使用
2017-06-10 22:10
351 查看
有名管道pipe函数:int pipe(int filedes[2]);
下面程序通过创建进程,父进程写入数据,子进程读取数据,从管道中读取数据。
下面程序通过创建进程,父进程写入数据,子进程读取数据,从管道中读取数据。
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <string.h> int main() { int fd[2] = {0}; int ret = pipe(fd); if (-1 == ret) { perror("pipe"); exit(1); } pid_t pid = fork(); if (-1 == pid) { perror("fork"); exit(2); } if (0 == pid) { //read char buffer[32] = {0}; while (1) { close(fd[1]);//子进程读数据,关闭写入端 if (-1 == read(fd[0], buffer, 32)) { perror("read"); exit(3); } if (strcmp("exit", buffer) == 0) { close(fd[0]); exit(0); } } } else { //write char buffer[32] = {0}; while (1) { close(fd[0]);//父进程写数据,关闭读取端 scanf("%s", &buffer); if (-1 == write(fd[1], buffer, strlen(buffer))) { perror("write"); exit(4); } if (strcmp("exit", buffer) == 0) { close(fd[1]); exit(0); } printf("recv : %s\n", buffer); memset(buffer, 0, 32); } } return 0; }
相关文章推荐
- 无名管道pipe简单使用
- 使用无名管道pipe实现进程间通信
- 无名管道pipe的使用
- 无名管道(pipe)使用实例
- 无名管道pipe的使用
- 无名管道pipe使用方法
- linux shell 管道命令(pipe)使用及与shell重定向区别
- I/O重定向和管道:使用pipe、fork、exec详解。
- Linux操作系统中的管道(pipe)使用方法
- 执行一个命令,将其输出截获的代码-使用无名管道
- linux shell 管道命令(pipe)使用及与shell重定向区别
- Linux管道pipe使用实例
- 无名管道pipe
- 实例——Linux管道pipe的使用
- 使用pipe()与fork()函数通过管道实现父子进程之间的通信
- linux 无名管道pipe和有名管道FIFO
- linux下c编程之无名管道pipe()函数
- 1、进程间通信-PIPE(无名管道)
- 在.NET程序中使用PIPE(管道技术)
- Linux内核中无名管道pipe和有名管道fifo的分析