进程间通信:管道

目录

管道

管道概述

管道接口

关闭未使用的管道文件描述符

关闭无用的管道写入端

关闭无用的管道读取端

管道对应的内存去大小

shell 管道的实现


在 Linux 系统中,有时候需要多个进程相互协作,共同完成某项任务。进程之间或线程之间有时候需要传递消息,有时候需要同步来协调彼此的工作。因此很有必要了解一下 Linux 中进程间通信方式。

线程在 Linux 中被实现为轻量级进程,线程之间的同步手段(互斥量和条件等待),本质上也是进程间通信。

进程间通信的手段,大体可以分为以下两类:

  • 第一类是通信类:这类手段的作用是在进程之间传递消息,交换数据。若细分下来,通信类也可以分为两种,一种是用来传递消息(比如消息队列),另一种是通过共享一块内存区域来完成信息交换的(比如共享内存)
  • 第二类是同步类:这类手段的目的是协调进程间的操作。某些操作,多个进程不能同时执行,否则可能会产生错误的结果,这就需要同步类的手段来协调

从历史角度来说,Linux 下进程间通信手段基本上是从 Unix 平台继承而来的。

AT&T 的贝尔实验室和加州大学伯克利分校的伯克利软件开发中心(BSD)分别开发出了风格迥异的进程间通信手段。前者通过对早期的进程间通信手段的改进和扩充,开发出 System V IPC,包括消息队列、信号量和共享内存。但这些方法,将进程间的通信始终局限在单个计算机这个范围之内。BSD

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MFC是微软基于C++的一个应用程序框架,它可以帮助开发人员快速创建Windows应用程序。进程通信(IPC)是不同进程进行数据交换和通信的一种方法。管道是一种常见的IPC机制,它允许两个进程进行双向通信。 在MFC中,使用管道进行进程通信可以分为两个步骤:创建管道和使用管道进行通信。 首先,需要创建一个管道。可以使用CreatePipe函数来创建匿名管道,它接受两个参数,第一个参数是用于接收管道句柄的指针,第二个参数是用于发送管道句柄的指针。成功创建管道后,你将获得两个句柄,一个用于读取数据,一个用于写入数据。 然后,可以使用ReadFile和WriteFile函数来读取和写入管道中的数据。这些函数可以传入一个管道句柄,一个缓冲区来存储数据以及数据的长度。通过这些函数,可以在两个进程传递数据。 如果需要实现双向通信,可以在每个进程中使用一个管道来进行读取和写入操作。这样,两个进程就可以通过各自的管道进行双向通信了。例如,进程A使用管道A向进程B发送数据,进程B使用管道B向进程A发送数据。 总结起来,MFC可以使用管道进行进程通信,通过创建管道和使用ReadFile和WriteFile函数来实现数据的读取和写入。如果需要双向通信,则可以在两个进程中分别创建管道来进行双向数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值