2012-10-08 25 views
0

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

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

在Linux中,将进程A的输出传递给N个其他进程的输入的最佳方法是什么?

谢谢!

+1

创建N个管道? –

+3

我讨厌这么说,但'dbus'可能是最合适的东西... –

+2

更好的是使用unix套接字进行广播。 – Keith

回答

0

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

+0

谢谢! :)这绝对是一个选择。我正在考虑实现一个简单的守护进程,我可能会在内部使用类似的方法。 – DiogoNeves