当前位置: 首页 > article >正文

Linux C语言 37- 进程间通信IPC

Linux C语言 37-进程间通信IPC

本节关键字:C语言 进程间通信 信号 管道 消息队列 共享内存 网络通信(套接字)
相关库函数:

提示:先做内容框架梳理,后期进行完善补充!

什么是进程间通信?

系统的安全性要求进程之间需要保持相对独立,一个进程不能随便访问另外一个进程的地址空间。但是在实际项目中通常需要多个进程之间协作完成一些任务,这就需要进程之间能够完成数据的传递。所以,不同进程之间传播或交换信息就被称为进程间通信(IPC,InterProcess Communication)。

进程间通信的作用

  • 数据传递:消息传递(message passing)是IPC中常用的数据传递方式,即将数据抽象成一个个的消息进行传递。
  • 控制流转移:当一个通信发生时,内核将控制流从发送者进程切换到接收者进程;IPC中的控制流转移通常是利用内核对进程的运行状态和运行时间的控制来实现的。

进程间通信的分类

  • 单向IPC:消息在一个连接上只能从端发送到另一端,例如:管道、信号;
  • 双向IPC:在一个连接上运行两端互相收发消息,例如:套接字通信;
  • 单/双向IPC:根据通信中具体的配置选项判断是否需要支持单向或双向的通信。在实际中,很多操作系统选择单/双向IPC。

进程间通信IPC之信号量

Linux C语言 38-进程间通信IPC之信号量

进程间通信IPC之管道

Linux C语言 39-进程间通信IPC之管道

进程间通信IPC之消息队列

Linux C语言 40-进程间通信IPC之消息队列

进程间通信IPC之共享内存

Linux C语言 41-进程间通信IPC之共享内存

进程间通信IPC之网络通信(套接字)

Linux C语言 42-进程间通信IPC之网络通信(套接字)


http://www.kler.cn/a/160708.html

相关文章:

  • C语言 | Leetcode C语言题解之第556题下一个更大元素III
  • C++中的栈(Stack)和堆(Heap)
  • 【插件】多断言 插件pytest-assume
  • MySQL数据库:SQL语言入门 【下】(学习笔记)
  • MySQL重难点(一)索引
  • UVC 输出视频格式修改和windows下数据分析
  • Python读写txt文件数据
  • vue管理系统模版
  • 编织魔法世界——计算机科学的奇幻之旅
  • [C++] new和delete
  • 自定义插件vue-router简单实现hashRouter设计思路
  • linux常用快捷键
  • 学习mysql记录
  • 说说react的事件机制?
  • Isaac Sim教程08 独立代码编程
  • C# WPF上位机开发(会员管理软件)
  • 启用属性,索引和存储的用途是什么?
  • Elasticsearch:什么是大语言模型(LLM)?
  • HarmonyOS开发(十):通知
  • React立即更新DOM
  • 备案小技能:ICP备案(网站、app、小程序)经营性ICP备案(增值电信业务经营许可证)
  • 【PyTorch】训练过程可视化
  • c语言上机小练(有点难)
  • 【力扣】206.反转链表
  • 浅谈什么是语音芯片的白噪音支持功能:打造舒适家居与优质音频体验
  • 扔掉sql语句,用 QxOrm 让你的数据库操作从来没有这么简单过!