2010-10-04 78 views
1

我有一个旧学校的c程序,现在和然后 需要告诉基于C + + Qt的应用程序关于我的系统上发生的一些“事件”。在c程序和C++ Qt应用程序之间使用什么Linux IPC?

但是当我开始处理这个问题时,我注意到一些ipc技术在c程序中很容易使用。 然后我们有一些Qt特定的风格,在“Qt世界”中效果很好, ,但它们在ansi c程序中效果不好。

你对ipc技术有什么建议可以很好地工作,并且易于在Qt C++和c程序中使用吗?

感谢 约翰

回答

4

named pipes什么?你可以像普通文件一样对它们进行操作(当然,创建有点不同),我敢打赌,旧的ANSI C程序和新的Qt C++程序都可以对文件进行操作。

+0

我一直在考虑使用命名管道,并可能需要帮助inotify。 – Johan 2010-10-04 09:32:37

5

如果您熟悉网络编程,那么Unix域套接字也应该很容易。它们的工作方式类似于双向命名管道,Qt中的网络API可以让接收作为网络消息的“事件”变得容易。

1

如果事件通知非常简单,那么您可以使用signals

如果通知对外部/来源有用,那么D-Bus是一个选项。

+0

Unix的信号很容易在c程序中使用,但在Qt世界里,它们有点混乱,就像你的例子所显示的那样。他们并没有真正融入“Qt世界”。 – Johan 2010-10-04 09:30:05

+1

Johan是正确的。 Unix信号和Qt不是很好的匹配。 D总线需要C中的大量设置。本地套接字或命名管道是更好的选择。 – andref 2010-10-04 16:12:58

+0

顺便说一句,我试图让那个unix信号示例运行...但它根本不工作(奇怪,因为大多数Qt示例通常运行得很好......)您是否试图让该示例运行? – Johan 2010-10-11 15:21:54

相关问题