1.popen(), pclose()
2.pipe()2.1 普通 pipe2.2 父子进程 pipe2.3 不同进程 pipe2.4 用管道当作 标准输入,标准输出2.5 命名管道

1.什么是管道


2.进程管道


3.将输出送往 popen







4.pipe 调用





#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>int main()
{int data_processed;int file_pipes[2];const char some_data[] = "123";char buffer[BUFSIZ + 1];pid_t fork_result;memset(buffer, '\0', sizeof(buffer));if (pipe(file_pipes) == 0) {fork_result = fork();if (fork_result == -1) {fprintf(stderr, "Fork failure");exit(EXIT_FAILURE);}// We've made sure the fork worked, so if fork_result equals zero, we're in the child process.if (fork_result == 0) {data_processed = read(file_pipes[0], buffer, BUFSIZ);printf("Read %d bytes: %s\n", data_processed, buffer);exit(EXIT_SUCCESS);}// Otherwise, we must be the parent process.else {data_processed = write(file_pipes[1], some_data,strlen(some_data));printf("Wrote %d bytes\n", data_processed);}}exit(EXIT_SUCCESS);
}

5.父进程和子进程











  1. 命名管道:FIFO























把管道做标准输入和标准输出:
好处是 可以调用标准程序,即那些不需要以文件描述符作为参数的程序
先关闭标准输入,然后用 dup() 函数
管道有长度限制: PIPE_BUF
一个管道,多个写进程的话,必须保持写请求是发往一个阻塞的 FIFO,并且每次写请求的数据长度小于等于 PIPE_BUF 字节,系统就能保证写数据不会交错在一起。

16.进程间的通信:管道相关推荐

  1. 【操作系统】进程间的通信——管道

    进程间的通信-管道 管道 进程间的通信(IPC-Inter-Process Communication)有多种方式,管道是其中最基本的方式. 管道是半双工的,即是单向的. 管道是FIFO(先进先出)的 ...

  2. 进程间的通信----管道

    前提:本文是基于Linux系统下的学习 用户态的进程是如何组织的呢? 所有的用户态进构成了一棵树.进程树. 进程树的树根是init.也就是1号进程.是用户态进程的祖宗进程. 如何查看进程树? pstr ...

  3. 进程间的通信IPC(无名管道和命名管道)

    进程间的通信IPC介绍 进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息. IPC的方式通常有管道(包括无名管道和命名管道).消息队列.信号量 ...

  4. 进程间的通信——无名管道

    进程间的通信--无名管道 宗旨:技术的学习是有限的,分享的精神是无限的. 一.进程间的通信 (1)同主机进程间数据交互机制:无名管道(PIPE),有名管道(FIFO).消息队列和共享内存.无名管道多用 ...

  5. 网络编程之 进程间的通信之管道的使用

    如何使用管道是进程间通信的关键 博主先声明一下,关于处理进程创建以及销毁的方法.        "子进程究竟何时终止????调用waitpid函数后还要无休止的等待子进程终止吗???&quo ...

  6. 命名管道(FIFO) Linux进程进程间的通信之命名管道(FIFO)

    Linux进程进程间的通信之命名管道(FIFO) 命名管道(FIFO),它和一般的管道一样.都是作为中间的邮递员来实现两个进程间的通信交流. 命名管道(FIFO)有几个特点: 1.命名管道(FIFO) ...

  7. 2022.8.31 进程中无名管道的特点,无名管道的创建,为何无名管道只能能够实现具有亲缘关系的进程间的通信,以及实现利用无名管道父进程给子进程发送消息的完整代码。

    无名管道通信 无名管道特点: (1):只能用于具有亲缘关系的进程之间的通信.(父子进程或兄弟进程) (2):是一个半双工的通信模式,具有固定的读端和写端.(fd[0]固定为读端,fd[1]固定为写端) ...

  8. linux进程间通讯-无名管道

    文章目录 无名管道 无名管道的创建 -- pipe函数 无名管道的读写规律 无名管道 无名管道概述 管道(pipe)又称无名管道. 无名管道是一种特殊类型的文件,在应用层体现为两个打开的文件描述符.任 ...

  9. 同步线程和进程间的通信

    最近回去学习了一下进程和进程间的通信,有时候很多东西久不看了也就一下子忘了== 这里面有好几个互斥对象使用线程的 1 void mListText(CString str) 2 { 3 m_list_ ...

  10. 【转载】进程间的通信之剪贴板方法实现源码

    1 源码无私奉献 2 3 void CClipboardDlg::OnBnClickedButton1() 4 { 5 // TODO: 在此添加控件通知处理程序代码 6 //打开剪贴板 7 if(O ...

最新文章

  1. SAE取消每日免费云豆赠送机制
  2. python设置字体_Python实现文字特效的方法
  3. 前端逼死强迫症系列之javascript
  4. python解析XML文件并转存到excel
  5. 安装Fedora 20桌面版并配置(gnome桌面环境)
  6. 零门槛修改微信步数(基于虚拟xposed)
  7. 北大才女文章 《卖米》感动人心
  8. Windows系统下使用WCP搭建自己的本地知识库管理平台
  9. 大象不会跳舞了吗?营收下滑的IBM在干什么
  10. 校验、加密、压缩、哈希值的区别,我老是弄混,现在总结一下
  11. mc服务器文件夹改皮肤,我的世界皮肤放在哪个文件夹位置及更换方法解析
  12. 事务四大特征:(原子性、一致性、隔离性、持久性)
  13. MySQL数据查询之多表查询
  14. python panda3d教程_panda3d学习笔记(一)Hello World
  15. 一个接口满足你对天气数据的所有想象,包含小时预报,实况,逐日预报,城市预报,实况,雷达月报,生活指数
  16. 孩子一看学习就上瘾,不信试试看(ZT)
  17. Android Java 多线程常见问题
  18. R语言 Fisher线性判别
  19. 如何使用手机里的Windows系统云桌面?
  20. 命令行下打开文件管理器

热门文章

  1. 深入Linux内核架构(中文版)pdf
  2. 判断对象是否是某个类的实例
  3. 那个清华哈佛双料女学霸, 辞职了
  4. jupyterLab+R,让你更优雅的探索数据
  5. 集中火力 专项击破|数据分析可视化广深线下培训火热来袭
  6. 在TortoiseSVN使用clean up
  7. uoj#422. 【集训队作业2018】小Z的礼物(MIn-Max容斥+插头dp)
  8. Quartz.Net进阶之三:SimpleTrigger详述
  9. C语言实例解析精粹学习笔记——36(模拟社会关系)
  10. TFC2017 腾讯Web前端大会参会小结