我想用 C 语言编写一个服务。
当此服务在后台运行并处理一些信息时,我需要从其他应用程序或命令行获取此服务的结果。
背景:由于性能问题,我需要 C 应用程序/服务。 UI 将以更高级的语言(如 Linux 上的 Java 或 C#/Mono)实现。 C 应用程序基本上将处理来自其他来源的数据。 UI 层应该能够每隔几毫秒循环获取结果并将其显示给用户。此外,还应该可以从 Java 应用程序暂停/启动/配置服务。这就是问题开始的地方。
如何用 C 语言实现该服务,以便它可以在运行时响应命令?
谢谢,爱德华
答案1
如果你想分离一个服务和它的 UI,你需要某种工控机使他们进行交流的机制。其中有几个已经存在,但现在基于 Linux 的系统的标准是 D-Bus,它可用于从任何具有 D-Bus 绑定的语言编写的客户端访问用 C 编写的服务(Java 和 Mono 有它们) )。你的服务应该提供D-Bus服务供客户端调用。 D-Bus 还提供了一种自动启动服务的方式。可以轻松实现停止和配置。
我不会让你的 UI 每隔几毫秒抓取一次结果,因为人类无法那么快地处理信息。每秒 25-30 次的更新率应该绰绰有余。