无名管道pipe的使用
2017-07-15 23:23
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重定向区别
- 管道pipe与dup结合使用,应用实例
- 管道Pipe的初次使用
- linux下使用管道pipe和select创建阻塞
- 关于Linux_shell中的管道命令pipe “|”的简单学习和使用
- (转)linux 无名管道pipe和有名管道FIFO
- Linux环境编程--如何用C语言创建多进程运行以及简单的pipe管道使用
- Linux内核中无名管道pipe和有名管道fifo的分析
- 无名管道pipe
- 在.NET程序中使用PIPE(管道技术)
- linux shell 管道命令(pipe)使用及与shell重定向区别
- linux shell 管道命令(pipe)使用及与shell重定向区别
- linux shell 管道命令(pipe)使用及与shell重定向区别
- IPC——无名管道pipe