【发布时间】:2014-07-30 20:25:29
【问题描述】:
我创建了一个需要用户输入的 c++ 程序。我想从 php 调用这个程序并在我的网页上使用程序的输出。 由于 c++ 程序需要花费大量时间来初始化,我想让它在后台运行并在调用时响应 php 脚本。然后 php 脚本应该获取输出并将其显示在我的页面上。 这个可以吗?
【问题讨论】:
我创建了一个需要用户输入的 c++ 程序。我想从 php 调用这个程序并在我的网页上使用程序的输出。 由于 c++ 程序需要花费大量时间来初始化,我想让它在后台运行并在调用时响应 php 脚本。然后 php 脚本应该获取输出并将其显示在我的页面上。 这个可以吗?
【问题讨论】:
当然可以,但是您可能必须编写两个 C 或 C++ 程序,一个在后台运行,另一个在您每次需要一些信息时由您的 PHP 程序启动。虽然有可能想出一个只使用 PHP 的方案——我还没有深入研究它。无论哪种方式,我都会将术语“请求者”用于“请求信息”的进程(PHP 或 C),而“服务进程”则用于实际响应信息的进程。
要在请求者和后台进程之间进行通信,您需要使用一些 IPC(进程间通信)机制。有很多选择。在这种情况下,命名管道听起来像是一个合理的解决方案,并且命名管道在大多数操作系统中都可用(以及在例如 Boost 库中进行抽象,以便在需要时提供更便携的解决方案)。
所以,基本原则是:
当然,上述 7 个步骤中的每一个都有许多“小步骤”,但总的来说,这几乎就是您想要做的。
【讨论】: