进程间通信(命名管道)

news2024/11/20 13:19:05

目录:

           1.命名管道

           2.创建命名管道

---------------------------------------------------------------------------------------------------------------------------------

1.命名管道

1.管道的一个应用限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信

2.如果我们想在不相关的进程之间交换数据,可以使用FIFO这个文件来做这项工作,它经常被称为命名管道

3.命名管道是一种特殊文件类型

2.创建命名管道

mkfifo   是一个命令  ---- 创建一个命名管道

 我们先以文件的方式实现一下命名管道

 

 

 可是把数据写进文件里,降低效率

 我们现在有两个需求??

1.你得存在一个文件,这个文件打开时它把数据不要刷新到磁盘上,而只是在内存当中作为数据的临时保存

2.这个文件在磁盘上也有对应的文件名  ,方便两个进程使用路径+文件名的方式看到同一份资源

符合上面这两个条件的就是我们的命名管道

----------------------------------------------------------------------------------------------------------------------------

 

 但是如果你想让makefile一次就生成两个可执行程序

 接下来我们该怎么做呢???

创建管道文件

 

 

 自此,我们的管道文件就有了,进程怎么通信呢???

一旦我们具有了一个命名管道,此时我们只需要让通信双方按照文件操作即可!!!

我们现在开始证明他们两个能通信!!!

接下来,我们在运行我们的client程序,打开管道文件,进行写入

 

 

 ------------------------------------------------------------------------------------------------------------------

因为命名管道,也是基于字节流的,所以实际上,信息传递的时候,是需要双方定制“协议的”,不考虑这个

今天我们就单纯的进行字符串通信

 

这样子我们就实现了进程间通信的目的:除了实现数据传输之外,还实现了一个进程控制另一个进程

 ----------------------------------------------------------------------------------------------------------------------------

 

为什么我们之前的pipe叫做匿名管道,为什么现在的fifo叫做命名管道呢??

原因是因为fifo命名管道有名字,名字叫fifo,为什么一定要有名字呢??

为了保证不同进程看到同一个文件,必须要有名字

因为匿名管道没有名字,为什么匿名管道可以没有名字呢??

因为它是通过父子继承的方式看到同一份资源,不需要名字来标识同一份资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/584543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI落地:高效学习指南

高效学习中有一个共识:学习最小可用知识,然后立马开始实践,做中学,不断获得反馈,不断在实践中改进。 现实生活中,如果我们想实现这种高效学习,基本上只能找一个老师1对1指导,费用贵…

[C语言][典例详解]打印杨辉三角(找规律简单实现)

目录 杨辉三角的相关知识 杨辉三角图: 杨辉三角的规律 在编程中实现 第一步 :我们先实现数字的打印,后面再加上空格构成三角形形状; ​编辑 1.首先我们可以直观的看出三角形的两个斜边都是1;所以我们先打印斜边的…

S型平滑函数功能块(SCL+梯形图)

S型平滑和斜坡平滑函数从字面理解也知道大概用处了,这里就不再具体阐述。S型曲线在温控上面的应用请参看系列专栏,链接如下: 带平滑功能的斜坡函数(多段曲线控温纯S型曲线SCL源代码+完整算法分析)_s斜坡函数_RXXW_Dor的博客-CSDN博客PLC运动控制基础系列之梯形速度曲线,…

Java 集合和数组,集合和字符串,数组和字符串的相互转换

在 Java 中&#xff0c;可以通过以下方式实现集合、数组和字符串之间的相互转换。 一、集合和数组的相互转化 ①、将集合转为数组&#xff1a;&#xff08;toArray 方法&#xff09; List<String> list new ArrayList<>(); list.add("apple"); lis…

手写服务限流6种实现方式

服务限流&#xff0c;我有 6 种实现方式 ImportNew 2023-05-29 11:31 发表于上海 以下文章来源于码农参上 &#xff0c;作者Dr Hydra 码农参上. 专注后端技术分享&#xff0c;有趣、深入、直接&#xff0c;与你聊聊技术。 今天来和大家聊聊服务的限流。 服务限流&#xff0…

2023 年 14 个最佳隐私和安全 Linux 发行版

随着数字时代的到来&#xff0c;隐私和安全成为了越来越重要的议题。对于那些关注隐私和安全的用户来说&#xff0c;选择一款专注于保护用户数据和系统安全的Linux发行版是至关重要的。在本文中&#xff0c;我们将介绍2023年14个最佳的隐私和安全Linux发行版&#xff0c;这些发…

stm32学习笔记-11 SPI通信

11 SPI通信 文章目录 11 SPI通信11.1 SPI通信协议11.2 W25Q64简介11.3 实验&#xff1a;软件SPI读写W25Q6411.4 SPI通信外设11.5 实验&#xff1a;硬件SPI读写W25Q64 注&#xff1a;笔记主要参考B站 江科大自化协 教学视频“ STM32入门教程-2023持续更新中”。 注&#xff1a…

Acrel-2000系列监控系统在亚运手球比赛馆建设

10kV供配电工程中的应用 摘要:智能化配电监控系统是数字化和信息化时代应运而生的产物&#xff0c;已经被广泛应用于电网用户侧楼宇、体育场馆、科研设施、机场、交通、医院、电力和石化行业等诸多领域的高/低压变配电系统中。安科瑞自研的Acrel-2000系列监控系统可监控高压开…

【自动化测试】自动化测试框架那些事儿!

无论是在自动化测试实践&#xff0c;还是日常交流中&#xff0c;经常听到一个词&#xff1a;框架。在教学的过程中&#xff0c;同学们一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料&#xff0c;加上一些实践&#xff0c;算是对“框架”有了一些理解…

OceanMind海睿思入选《2023中国企业数智化转型全景图中国数据智能产业图谱》

近日&#xff0c;国内知名大数据产业创新服务媒体数据猿携手上海大数据联盟发布了《2023中国企业数智化转型升级服务全景图/产业图谱》和《2023中国数据智能产业图谱》。 两份图谱系统梳理了中国数智化转型升级及数据智能行业发展现状和脉络&#xff0c;评选出极具商业合作价值…

​​​​Linux Shell 实现一键部署Oracle21 zip包方式

oracle前言 Oracle开发的关系数据库产品因性能卓越而闻名&#xff0c;Oracle数据库产品为财富排行榜上的前1000家公司所采用&#xff0c;许多大型网站也选用了Oracle系统&#xff0c;是世界最好的数据库产品。此外&#xff0c;Oracle公司还开发其他应用程序和软件。同时&#…

ABeam News|ABeam荣获「SAP BTP 卓越业务分析奖」

近日&#xff0c;「云铸数卯&#xff0c;榫合万象」SAP BTP 客户与生态峰会在桂林圆满落幕。此次年度峰会以全面的视角展现 RISE with SAPSAP BTP如何构建“新型中国企业”数字底座。 ABeam Consulting作为SAP金牌合作伙伴受邀出席&#xff0c;大中华区董事长兼总经理中野洋辅…

Ubuntu Go语言环境配置【GPT-4版】

目录 go语言的培训网课安装goGPT-4给出的过程在VSCode里怎样正确配置好Go的调试相关设置&#xff1f;如果我在Visual Studio Code中安装Go语言的相关工具总是失败怎么办&#xff1f;我已重启Visual Studio Code&#xff0c;接下来应该怎样检查日志&#xff1f;如果我还是不能成…

Vue2中给对象添加新属性界面不刷新

Vue2中给对象添加新属性界面不刷新? Vue2.x的响应式 实现原理 对象类型&#xff1a;通过Object.defineProperty()对属性的读取、修改进行拦截&#xff08;数据劫持&#xff09;。数组类型&#xff1a;通过重写更新数组的一系列方法来实现拦截。&#xff08;对数组的变更方法…

敏捷世界还需要有QA吗?

敏捷开发模型现在已经被越来越多的公司熟知并使用&#xff0c;很多公司会选择敏捷开发模式的转型&#xff0c;其主要目的就是为了不断适应变化以及客户快速交付的诉求。为什么敏捷开发能够被诸多大众接受&#xff1f;可以从两个维度来看&#xff1a; 首先&#xff0c;从开发人员…

条码系统(PC/PDA)对接NC接口功能

条码系统功能清单功能模块功能菜单明细菜单支持终端功能描述业务流程框架pc端框架搭建 PC端整体框架工具搭建,提供字典配置,PDA端的参数配置,NC数据源,NC接口调用工具等 PDA端框架搭建 PDA端安卓端框架基础功能APP创建,数据源,功能菜单等 服务器环境部署 PC端/PDA端pc端/P…

使用YOLOV8实现滑块缺口验证码识别,并使用Fastdeploy快速部署,精度高达99%!!

前言:首先大家对滑块缺口验证码的识别应该有很多经验了,大部分人可能阅读过我的文章或者其他人的文章,能从各方了解到,滑块缺口的各种实现方式,例如模板匹配、边缘检测、提取透明通道、yolov5,paddledection等,此篇文章将会讲解yolov8的使用和训练,yolov8相对于yolov5有…

真心牛x,阿里出品2023最新版Spring全家桶进阶笔记流出,堪称Java程序员跳槽神器

最近小伙伴在我后台留言是这样的&#xff1a; ​现在就这光景&#xff0c;不比以前&#xff0c;会个CRUD就有人要&#xff0c;即使大部分公司依然只需要做CRUD的事情......现在去面试&#xff0c;只会CRUD还要被吐槽&#xff1a; ​面试造火箭&#xff0c;工作拧螺丝&#xff0…

六级备考23天|CET-6|翻译技巧5|2019年12月真题|翻译荷花lotus|11:05-12:05

目录 一、中文 句子1 PRACTICE ANSWER 句子2 PRACTICE ANSWER 句子3 ​ PRACTICE ANSWER 句子4 PRACTICE ANSWER 句子5 PRACTICE ANSWER 句子6 PRACTICE ANSWER ​ 答案整合​ 一、中文 句子1 荷花是中国的名花之一&#xff0c;深受人们喜爱。 PRACTICE Lotus is one…

CMakeLists.txt 文件详解

目录 CMakeLists.txt 常见内容和结构: 文件中的命令和配置&#xff1a; 官方文档&#xff1a; CMakeLists.txt CMakeLists.txt 文件是用于描述 CMake 构建过程和项目配置的文件。它包含了一系列 CMake 命令、变量设置和流程控制结构&#xff0c;用于告诉 CMake 如何生成适合…