匿名管道 命名管道

只说相关函数和理论 具体实现建议自行尝试或者详细文章 这里推荐下”一只大喵咪1201“

说这三个的前提就是要先了解什么时进程间通信 

什么是进程间通信

进程间通信就是两个及其往上的进程有着以下的行为

数据传输:一个进程传数据给另一个进程

资源共享:共享同一块资源

进行通知:一个进程给另一个进程发消息

进程控制:一个进程控制另一个进程

进程通信存在的原因

为了大家(进程)更好的完成任务 

如何通信

管道:匿名管道 命名管道

本地通信:共享内存 消息队列 信号量

跨主机通信:共享内存 消息队列 信号量 互斥量 条件变量 读写锁

今天主要说标题三个

匿名管道:

本质:管道并不是一块具体的空间 只是一个代名词(本质是个文件) 而这块空间就是内核缓冲区(与磁盘大小无关) 

工作方式:半双工 一方只能读 另一方只能写

创建方式:先创建一个俩大小的文件描述符数组 创建完父进程后 创建管道文件 父进程进行读写 然后创建子进程 子进程进行读写 父进程关闭读端 子进程关闭写段 常用函数pipe

注意:

写段关闭后 read返回0 读端关闭后 write产生SIGPIPE自行退出

哪端快阻塞在哪

常用于父子进程通信(有血缘)

无连接时自行销毁(随生命周期)

不可以传地址(无法映射) 不限读写个数

命名管道:

本质和工作方式无区别 主要用于无血缘进程通信 常用函数mkfifo

注意:

哪端打开而另一端没打开阻塞在哪

其他和匿名基本无区别

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值