linux c 中简单的管道实现

来源:互联网 发布:矩阵的作用 编辑:程序博客网 时间:2024/06/05 17:49

 

管道一般用与父子进程之间通信,下面是一个简单的父子进程通信事例:

 

#include <unistd.h>#include <stdio.h>int main(){int fd[2];//管道入口fd[0]为读,fd[1]为写入口char r_buf[100];char w_buf[20]= "hello word!";pid_t pid;if(pipe(fd) < 0)//新建管道{printf("pipe error!\n");exit(1);}if((pid = fork()) < 0){printf("fork error!\n");}else if(pid == 0)//子进程{printf("child\n");close(fd[1]);//关闭写端口sleep(2);//程序休眠2秒read(fd[0], r_buf, 100);//读阻塞,当管道内写入东西后才读取,所以当主程序运行完成后,子程序才运行完成。子程序由init管理printf("%s",r_buf);}else//主进程{printf("father\n");close(fd[0]);sleep(2);write(fd[1], w_buf, 20);}return 0;}


 

原创粉丝点击