Advertisement

Linux系统中进程间通信的详细解析

阅读量:

进程间通信(IPC)介绍


进程间的通信机制旨在使两个看似不相关的进程能够共享同一份资源。其核心目标在于促进不同进程之间的信息传递与资源共享

进程间通信主要有管道机制、消息队列机制、共享内存机制以及信号量机制等。这篇博客重点阐述前面四种通信方式。(由于后面的两种知识尚未掌握)

一、管道

管道源自UNIX这一代进程中最早采用的通信手段。
在多任务处理中,我们通常将一个进程向另一个进程传输数据的路径统称为"管道"术语。
其中主要包含两种类型:无名称的匿名管道与带有明确名称标识的命名管道。

匿名管道
1、特点
  • 管道是半 duplex 的,仅允许单向传输.若要实现全 duplex 通信,必须建立两个管道.
  • 管道仅适用于具有血缘关系的进程间通信,例如父子进程及兄弟进程.
  • 管道的生命周期与关联进程同步运行.
  • 管道提供基于字节流的数据传输功能.
2、原型
复制代码
    #include <unistd.h>
    int pipe(int fd[2]);
复制代码
    管道创建成功后返回两个文件描述符,用fd[2]数组接收,fd[0]为读,fd[1]为写
    返回值:成功返回0,失败返回错误代码
3、图解

![这里写图片描述](h

全部评论 (0)

还没有任何评论哟~