linux各种通讯机制汇总

eventfd —— 创建一个文件描述符fd,用于支持事件等待通知机制 ,  功能上类似于信号量。

使用场景:当使用pipe仅用于等待/通知功能时,可以使用eventfd替换,代价低,只需要一个文件描述符,而pipe会创建两个文件描述符。相比于信号量,能够支持文件描述符多路复用接口,如poll,select,epoll等。

pipe —— 管道,分为有名管道和匿名管道,有名管道创建一个fifo文件,一个进程往文件里面写数据,一个进程读取数据。写进程用O_WRONLY方式打开,读进程使用O_RDWR打开,这样写进程的打开只有读进程执行了打开后才能打开,否则会阻塞在打开文件接口上,读进程如果设置为O—RDONLY,那么写进程一旦退出,那么读进程read接口一直返回0,不能阻塞,因此使用O—RDWR打开文件。如果读进程单方面退出,那么写进程会产生SIGPIPE信号而退出,因此需要注册SIGPIPE处理函数或忽略该信号,从而在写出错返回值为EPIPE时,加一个1S延时(否则频繁调用写接口并频繁产生信号导致CPU占用很高),待读进程重新恢复后可正常写数据。

(0)

相关推荐

  • linux管道pipe详解

    管道 管道的概念: 管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递.调用pipe系统函数即可创建一个管道.有如下特质: 1. 其本质是一个伪文件(实为内核缓冲区) 2. 由两个 ...

  • 进程间的五种通信方式介绍

    进程间通信又叫IPC (InterProcess Communication)是指在不同进程之间传播或交换信息.IPC的方式通常有管道(包括无名管道和命名管道).消息队列.信号量.共享存储.Socke ...

  • Shell:管道与重定向

    转自:TOMORROW 链接:https://reurl.cc/A8vpQE 对shell有一定了解的人都知道,管道和重定向是 Linux 中非常实用的 IPC 机制. 在shell中,我们通常使用符 ...

  • 超全整理!Linux 性能分析工具汇总

    出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章.本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面.如果没有完善的计算机系统知识,网络知识和操作系统知识, ...

  • 常用品牌plc通讯协议汇总学习

    一.美系厂家Rockwell ABRockwell的PLC主要是包括:PLC2.PLC3.PLC5.SLC500.ControlLogix等型号,PLC2和PLC3是早期型号,现在用的比较多的小型PL ...

  • 深入理解 Linux 的 epoll 机制

    在 Linux 系统之中有一个核心武器:epoll 池,在高并发的,高吞吐的 IO 系统中常常见到 epoll 的身影. IO 多路复用 在 Go 里最核心的是 Goroutine ,也就是所谓的协程 ...

  • (3条消息) Linux内核OOM机制的详细分析和防止进程被OOM杀死的方法

    转载自:http://blog.chinaunix.net/uid-29242873-id-3942763.htmlLinux 内核有个机制叫OOM killer(Out-Of-Memory kill ...

  • 西门子S7-200/300/400通讯方式汇总,超级全面

    西门子S7-200/300/400通讯方式汇总,超级全面

  • 一项基于NGS的方法来鉴定外泌体介导的细胞通讯机制

    在这项工作中,来自西奈山伊坎医学院的研究人员提出了一种基于二代测序(NGS)的方法来鉴定共培养的脂肪细胞和巨噬细胞之间的EV介导的mRNA交换.研究人员进行分子和基因组分析,并联合了RNA测序(RNA ...

  • Linux内存分配机制

    原文:https://blog.csdn.net/gfgdsg/article/details/42709943 Linux 的虚拟内存管理有几个关键概念: 1.每个进程都有独立的虚拟地址空间,进程访 ...

  • Linux入门的基础知识点汇总,有这篇就够了

    一口Linux 143篇原创内容 公众号 很多粉丝给一口君留言,想要学习Linux资料,其实关注一口君的公众号,后台回复 1024 ,就有很多非常不错的电子书,但是有一个问题,很多粉丝是初学者,而这一 ...

  • Linux运维常用命令汇总

    转自:https://blog.csdn.net/zhongqi2513/article/details/78692300 线上查询及帮助命令 (2 个) man查看命令帮助,命令的词典,更复杂的还有 ...