Linux 一对多复用器

标签 linux pipe linux-device-driver

我正在 Linux 中创建一个简单的设备驱动程序,它应该通过串行读取一些数据,解析它,构造它,然后将其流式传输到任何需要数据的进程。

我认为实现这一目标的最佳方法是使用管道广播数据。

在 Linux 中,将进程 A 的输出通过管道传输到其他 N 个进程的输入的最佳方式是什么?

谢谢!

最佳答案

我会让驱动程序写入内存中的循环缓冲区,并使用对应的 API 来发现缓冲区的地址并将数据从缓冲区读取到消费者的私有(private)内存中。在我的实现中,慢速消费者可能无法接收到所有数据,但这可以通过引入缓存快速消费来将大量数据排队以供慢速消费者恢复来解决。

关于Linux 一对多复用器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12786911/

相关文章:

c++ - 为什么写入文件会大大增加缓存未命中和分支未命中?

linux - 如何在 Linux 服务器上从命令行运行 PHP 代码

r - 转换后 R 管道运算符的行为

linux - 想要将内核驱动程序永久挂载到系统中

linux - 内核模块 : Netfilter hook not providing correct data via sk_buff

linux - 如何通过 make menuconfig 或 make nconfig 禁用 CONFIG_STRICT_DEVMEM

linux - od --width=x 选项不起作用。我的路径似乎是正确的。

regex - linux中目录的半复杂重组

angular - 如何去除文本中的空格

java - 同步多个线程写入java中的同一个文件