Linux中FIFO管道

介绍:

FIFO被称为命名管道,pipe只能用于有血缘关系的进程间通信,但通过FIFO,不相关的进程也可以进程间通信。

FIFO是linux基础文件类型的一种(文件类型为p),FIFO文件在磁盘上没有数据块,文件大小为0,仅仅表示内核中一条通道。进程可以打开这个文件进行read/write

创建FIFO管道:

  • 方式一:使用命令mkfifo  如:mkfifo 管道名
  • 方式二:使用函数 int mkfifo(const char*pathname,mode_t mode);

注意:FIFO严格遵循先进先出,对FIFO的读总是从开始处返回数据,对他们写则是把数据添加到末尾。他们不支持lseek(),等文件定位操作

操作:

这是fifo_write.c文件,创建myfifo管道文件,并写入数据。

access函数可以判断文件是否存在,返回值为零则存在。

注意:这个sleep(10)是让这个写进程不结束,如果写进程比读进程提前结束,读进程会读不到内容,一直阻塞。

 

这是fifo_write.c文件,执行读进程。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

五(一)java高级-集合-集合与迭代器(二)

5.1.2 Iterator迭代器 1、Iterator 所谓迭代器:就是用于挨个访问集合元素的工具/对象 方法: boolean hasNext():判断当前遍历集合后面是否还有元素可以迭代Object next():取出当前元素,并往后移→noSuchelementExceptionvoid remove():删…

阿里云带宽计费模式怎么选?如何收费的?

阿里云服务器带宽计费模式分为“按固定带宽”和“按使用流量”,有什么区别?按固定带宽是指直接购买多少M带宽,比如1M、5M、10M、100M等,阿里云直接分配用户所购买的带宽值,根据带宽大小先付费再使用;按使用…

锐捷(二十一)全局地址绑定

vlan划分和vlanif接口配置略,注意vlanif接口里要no shutdown配置如下: Address-bind 192.168.1.1 AAAA.BBBB.CCCCAddress-bind uplink g0/0Address-bind binding-filter loggingAddress-bind install 此时,IP为192.168.1.1 mac地址为AAAA.B…

Win10截图的四种方式

截图不一定要依靠通讯软件,现在系统自己就带有这些功能。 1.Win Shift S组合键:选择微信截图,部分截图,随心所欲; 2.Win W组合键:呼出屏幕右侧的工作区,选择屏幕草图,支持裁剪、编辑…

《SQLi-Labs》05. Less 29~37

title: 《SQLi-Labs》05. Less 29~37 date: 2024-01-17 22:49:10 updated: 2024-02-12 18:09:10 categories: WriteUp:Security-Lab excerpt: HTTP 参数污染,联合注入、宽字节注入。 comments: false tags: top_image: /images/backimg/SunsetClimbing.p…

【深度学习】基于多层感知机的手写数字识别

案例2:构建自己的多层感知机: MNIST手写数字识别 相关知识点: numpy科学计算包,如向量化操作,广播机制等 1 任务目标 1.1 数据集简介 ​ MNIST手写数字识别数据集是图像分类领域最常用的数据集之一,它包含60,000张训练图片&am…

【C语言】实现单链表

目录 (一)头文件 (二)功能实现 (1)打印单链表 (2)头插与头删 (3)尾插与尾删 (4) 删除指定位置节点 和 删除指定位置之后的节点 …

DevOps:CI、CD、CB、CT、CD

目录 一、软件开发流程演化快速回顾 (一)瀑布模型 (二)原型模型 (三)螺旋模型 (四)增量模型 (五)敏捷开发 (六)DevOps 二、走…

SpringCloud-高级篇(二十)

下面我们研究MQ的延迟性问题 (1)初始死信交换机 死信交换机作用一方面可以向Public的异常交换机一样做异常消息的兜底方案,另一方面,可以处理一些超时消息,功能比较丰富一点 (2)TTL 上面学习…

Python:函数和lambda表达式

函数实质性特定任务的一段代码,程序通过将一段代码定义成函数,并为该函数指定一个函数名,这样即可在需要的时候多次调用这段代码。因此,函数是代码复用的重要手段。 与函数紧密相关的一个知识点就是lambda表达式。lambda表达式可…

【C语言】C的整理记录

前言 该笔记是建立在已经系统学习过C语言的基础上,笔者对C语言的知识和注意事项进行整理记录,便于后期查阅,反复琢磨。C语言是一种面向过程的编程语言。 原想在此阐述一下C语言的作用,然而发觉这些是编程语言所共通的作用&#…

controller-manager学习三部曲之二:源码学习

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 作为《controller-manager学习三部曲》系列的第二篇,前面通过shell脚本找到了程序的入口,接下来咱们来学习controller-mana…

数据库管理-第149期 Oracle Vector DB AI-01(20240210)

数据库管理149期 2024-02-10 数据库管理-第149期 Oracle Vector DB & AI-01(20240210)1 机器学习2 向量3 向量嵌入4 向量检索5 向量数据库5 专用向量数据库的问题总结 数据库管理-第149期 Oracle Vector DB & AI-01(20240210&#xf…

【JVM篇】ThreadLocal中为什么要使用弱引用

文章目录 🍔ThreadLocal中为什么要使用弱引用⭐总结 🍔ThreadLocal中为什么要使用弱引用 ThreadLocal可以在线程中存放线程的本地变量,保证数据的线程安全 ThreadLocal是这样子保存对象的: 在每个线程中,存放了一个…

以谷歌浏览器为例 讲述 JavaScript 断点调试操作用法

今天来说个比较实用的东西 用浏览器开发者工具 对 javaScript代码进行调试 我们先创建一个index.html 编写代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&…

【每日一题】牛客网——链表分割

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有…

使用R语言fifer包进行分层采样

使用R语言fifer包中的stratified()函数用来进行分层采样非常方便&#xff0c;但fifer包已经从CRAN存储库中删除&#xff0c;需要从存档中下载可用的历史版本&#xff0c;下载链接&#xff1a;Index of /src/contrib/Archive/fifer (r-project.org)https://cran.r-project.org/s…

C# WinForm开发系列 - DataGridView

原文地址&#xff1a;https://www.cnblogs.com/peterzb/archive/2009/05/29/1491891.html 1.DataGridView实现课程表 testcontrol.rar 2.DataGridView二维表头及单元格合并 DataGridView单元格合并和二维表头.rar myMultiColHeaderDgv.rar 3.DataGridView单元格显示GIF图片 …

数据结构~~树(2024/2/8)

目录 树 1、定义&#xff1a; 2、树的基本术语&#xff1a; 3、树的表示 树 1、定义&#xff1a; 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&…

大数据Doris(六十五):基于Apache Doris的数据中台2.0

文章目录 基于Apache Doris的数据中台2.0 一、​​​​​​​架构升级