我正在为我的应用程序寻找一种方法,在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>也可以被捕获
命名管道>在这里我不知道,如果它足够快,就XLib-windows(特别是MouseMove)的消息队列而言
我现在还没试过: DBus>那很重!从哪个库开始!我想,我更喜欢libdbus-c ++ - dev,因为我想把我的程序“放在一行”,但我真的不知道。
请您提出一条建议,我的计划有什么最好的方式来建立IPC?
TIA Earlybite