C++ 面经

C++面经整理——进程间管道通信原理

2020-02-23  本文已影响0人  乔大叶_803e

我们先来了解下什么是进程通信,大概有数据传输、共享数据、通知事件、资源共享和进程控制。但是我们知道,对于每个进程来说这个进程看到属于他的一块内存资源,这块资源是他独占的,所以进程之间的通信就会比较麻烦。原理就是让不同的进程能够看到一份公共的资源。

所以交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间,拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制叫做进程间的通信。


一般采取的进程间的通信方法有

管道
信号
消息队列
共享内存
信号量
套接字


管道是一种最基本的进程间通信机制。管道由pipe创建

调用pipe函数,会在内核中开辟出一块缓冲区用来进行进程间通信,这块缓冲区称为管道,它有一个读端和一个写端。

父进程关闭读端(pipe[0]),子进程关闭写端pipe[1],则此时父进程可以往管道中进行写操作,子进程可以从管道中读,从而实现了通过管道的进程间通信。

上一篇下一篇

猜你喜欢

热点阅读