【发布时间】:2012-03-01 03:31:18
【问题描述】:
我将如何实现用 C 编写的 Linux 程序之间的通信?具体来说,我想要以下内容:
我的程序可以在多个实例中运行。启动时,我希望我的程序检测到我的程序的所有其他实例已经在运行,然后它应该能够向它们发送文本字符串。另一方面,我还希望已经运行的实例能够收到新实例已启动的通知,并且它们还应该能够向新实例发送文本字符串。
有人能指出一些可用于在 Linux 上实现此类软件设计的 API 吗?在 Windows 上,我可以简单地枚举所有窗口,检查它们的类名以找出我的程序的所有实例,然后向系统注册一条自定义消息,我可以使用它向它们发送数据。但是在 Linux 上我该怎么做呢?
感谢任何提示!
【问题讨论】:
-
我喜欢在你的第三段中使用“简单”这个词。 ;-)
-
我认为“简单”是 OP 的“脆弱”一词。 :-)
-
好吧,我认为简单地(再次!)使用 EnumWindows() 并比较类名是尽可能简单的。命名管道的东西在我耳中听起来要复杂得多,但这肯定是品味问题;)