进程间通信之管道

旧城冷巷雨未停 提交于 2020-03-12 11:16:39

1进程间通信:管道

进程间通信
IPC: inter‐process communicating
两个进程之间互相交换数据,称为进程间通 信。

进程A 进程B

进程间通信
四种方式:
① 管道pipe
② 消息队列message queue
③ 共享内存shared memory
④ 网络套接字socket

管道
管道:pipe,是Linux操作系统提供的一个消息传递机制。
① 系统中创建一个文件,其文件类型为管道
mkfifo ~/project/message
② 进程A: 打开open该文件,向文件写入write数据
③ 进程B: 打开open该文件,从文件读取read数据
于是,数据 从进程A传递到进程B。。。显然,管道文件 并不是普通的文件。

管理文件不是普通的文件。。。
ls ‐l message
prw‐rw‐r‐‐1 mytest mytest 0 8月 19 02:48 message (首字母为p,表示其类型为pipe)

演示
write.cpp : 向pipe中写入数据
read.cpp: 从pipe中读取数据
(1) open是阻塞的 一个发送方,一个接收方,都齐备时才返回
(2) read是阻塞的
(3) 管道是单向的 这意味着两个进程之间可能要建立两个管道
(4) 和普通文件 区别??

小结:
1,管道意义
2,管道操作

学习资源 《C语言/C++学习指南》Linux开发篇

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!