0

我正在为我的应用程序寻找一种方法,在 GNU/Linux 发行版下,用 C++ 编写,拥有 IPC。

我的程序使用 3 个库(Lib_A、Lib_B、Lib_C) 在 Lib_A 中,我运行了几个 forks() 以允许分离的用户定义程序使用我的程序。这些程序包括 Lib_B、Lib_C,其中 Lib_B、Lib_C 提供函数,如 API,并且在这些函数中应该是从函数到 IPC 的“转换器”。

Lib_B 是专门为程序设计的,如果你愿意,它是一个系统 API。Lib_C 用于 XLib-windows。

因此,我想在每个进程和 Lib_A 之间建立一个明确的、外部不可触碰的连接。例如,如果 Programm_A 想要与 Programm_B 通信,则必须通过 Lib_A (Lib_B, Lib_C)。

直到现在我尝试了几种可能性:消息队列>这是问题所在,程序可以使用 msg_type = 0 调用 msgrcv(),这会“破坏”我的程序。

std-pipe > 也可以被捕获

named-pipe > 这里我不知道,如果它足够快,关于 XLib-windows 的消息队列(尤其是 MouseMove)

直到现在我还没有尝试过:DBus > 太重了!从哪个图书馆开始!我想,我更喜欢 libdbus-c++-dev,因为我想把我的程序“放在一条线上”,但我真的不知道。

您能否提供一条建议,我的程序拥有 IPC 的最佳方式是什么?

TIA 早咬

4

0 回答 0