参考:linux管道pipe详解
注意 当fork 创建子进程也会把 pipe 复制下来

#include <stdio.h>#include <unistd.h>#include <sys/wait.h>#include <string.h>#include <stdlib.h>int main(void){pid_t pid;int fd[2], i, n;char buf[1024];int ret = pipe(fd);if(ret == -1){perror("pipe error");exit(1);}for(i = 0; i < 3; i++){if((pid = fork()) == 0)break;else if(pid == -1){perror("pipe error");exit(1);}}if (i == 0) {  //子进程会及继承 栈空间close(fd[0]);write(fd[1], "1.hello\n", strlen("1.hello\n"));} else if(i == 1) {close(fd[0]);write(fd[1], "2.world\n", strlen("2.world\n"));
} else if(i == 2) {close(fd[0]);
printf("333333333333\n");write(fd[1], "3.xixixixi\n", strlen("3.xixixixi\n"));} else {close(fd[1]); //父进程关闭写端,留读端读取数据// sleep(1);
/*  这个应该放到后面
n = read(fd[0], buf, 1024); //从管道中读数据    write(STDOUT_FILENO, buf, n);
*/for(i = 0; i < 3; i++) //两个儿子wait两次wait(NULL);
n = read(fd[0], buf, 1024); //从管道中读数据write(STDOUT_FILENO, buf, n);}return 0;}

linux管道pipe 示例相关推荐

  1. Linux 管道使用示例

    管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入.示例 ls --help | more 分页查询帮助信息ps –ef | grep java 查询名称中包含java ...

  2. linux管道pipe详解

    管道 管道的概念: 管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递.调用pipe系统函数即可创建一个管道.有如下特质: 1. 其本质是一个伪文件(实为内核缓冲区) 2. 由两个 ...

  3. Linux管道用法示例

  4. linux进程间通信:无名管道 pipe

    文章目录 内核层实现 结构 通信原理 特点 使用 函数声明 使用实例 单向通信 双向通信 编程注意事项 管道中无数据时读操作会阻塞 将管道的写端句柄关闭,不会影响读端数据读取 管道中没有数据,写操作关 ...

  5. 有趣的库:pipe(类似linux | 管道)库

    pipe并不是Python内置的库,如果你安装了easy_install,直接可以安装它,否则你需要自己下载它:http://pypi.python.org/pypi/pipe 之所以要介绍这个库,是 ...

  6. linux用pipe创建的文件类型,linux文件类型之 管道

    inux 管道管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,这是它与有名管道的最大区别.有名管 ...

  7. linux操作系统进程间通信IPC之管道pipe及FIFO

    linux环境下,各进程相互独立,如果想要交换两个进程之间的数据,需要通过内核,在内存中提供一个缓存区,一个进程往缓存区中写数据,一个往缓存区读数据,内核提供的这种机制称为进程间通信(IPC),常见的 ...

  8. Linux进程间通信之管道(pipe)、命名管道(FIFO)与信号(Signal)

    整理自网络 Unix IPC包括:管道(pipe).命名管道(FIFO)与信号(Signal) 管道(pipe) 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道 ...

  9. linux管道只能运输参数吗,oeasy教您玩转 linux 010212 管道 pipe

    原标题:oeasy教您玩转 linux 010212 管道 pipe 我们来回顾一下

最新文章

  1. synchronized底层原理_你用过synchronized吗?它的底层原理是什么?Java经典面试题来了...
  2. mvn tutorial
  3. oracle中主键创建的语法,Oracle中主键、外键、索引、序列、唯一性约束的创建
  4. 如何让JSON只从Model中输出一部分
  5. 力扣76,最小覆盖字串(JavaScript)
  6. 服务器开机信号,机柜服务器BMC开关机控制系统及方法
  7. 如何卸载赛门铁克symantec,ivanti
  8. 浅谈大数据时代之影响力
  9. 网页调用客户机软件。BS调用CS端的软件。
  10. python管理系统学习
  11. 牛逼哄哄的京东 JD-hotkey
  12. 教程:个人深度学习工作站配置指南
  13. html相同数据合并单元格合并单元格,Javascript合并表格中具有相同内容单元格示例...
  14. 新电脑自带的office密钥在哪里?
  15. 格式化什么意思?格式化了数据还能恢复吗?
  16. 收藏几个好用的webservice
  17. 打印机后台服务程序没有运行的解决办法
  18. shareware bible (from cnsw)
  19. 【论文笔记】PnP-AdaNet:即插即用的对抗域适应网络,用于跨模态心脏分割的基准
  20. 卷完职场卷AI,测试真的会被ChatGPT代替吗?

热门文章

  1. 长安逸动家族双车上市 震撼来袭 演绎传奇
  2. 【政策动态】央行印发《金融科技发展规划(2022-2025年)》:推动数据有序共享,激活数据要素潜能 | 冲量划重点
  3. 独立站卖家如何把握关键词优化
  4. C语言带空格的字符串输入——gets()函数、scanf()函数缺陷以及改进后的gets_s()函数、scanf_s()函数的简单用法(上)
  5. NOI的1.7.4石头剪子布
  6. 绝对干货!论文图表基本规范大全
  7. nginx中限制IP同一时间段的访问次数
  8. PHP和ActiveMQ集成
  9. 小程序点击按钮转发给朋友
  10. java Graphics2D绘制文字并居中并解决服务器乱码问题