运行 在服务器中可执行的 C 程序 LAMP - 对 C 代码做了哪些修改?
Running a C program executable in a server with LAMP - what modifications to the C code?
我计划将 C 程序的可执行文件放在服务器中,并 运行 使用 PHP 脚本将其作为 Web API:例如echo exec("myscript.exe")
目前 myscript 在命令提示符下运行 - 它需要两个输入文件和 return 一个整数或浮点数。目前代码在命令提示符下获取输入文件。
现有程序需要进行哪些修改 - 我听说过 HTTP 桥和守护程序,但不确定我需要什么?
更新:
目前唯一的其他依赖项是 libsndfile - 在 Linux 上可用。 C 程序是在 Linux.
上开发的
答案实际上取决于 C 应用程序使用的 API。如果 C 应用程序只使用标准 C 库,那么您只需在目标系统上重新编译应用程序并调用可执行文件的名称。但是,如果您依赖于任何基于 Windows 的 API,例如 COM、WinINET 等,您将需要 运行 另一个系统上的可执行文件并在它们之间有某种 IPC 机制。
快速简单(假设您的输出是标准输出上的单个文本行:
exec("yourprog.exe file1 file2",$res);
echo "result is " . $res[0];
我计划将 C 程序的可执行文件放在服务器中,并 运行 使用 PHP 脚本将其作为 Web API:例如echo exec("myscript.exe")
目前 myscript 在命令提示符下运行 - 它需要两个输入文件和 return 一个整数或浮点数。目前代码在命令提示符下获取输入文件。
现有程序需要进行哪些修改 - 我听说过 HTTP 桥和守护程序,但不确定我需要什么?
更新: 目前唯一的其他依赖项是 libsndfile - 在 Linux 上可用。 C 程序是在 Linux.
上开发的答案实际上取决于 C 应用程序使用的 API。如果 C 应用程序只使用标准 C 库,那么您只需在目标系统上重新编译应用程序并调用可执行文件的名称。但是,如果您依赖于任何基于 Windows 的 API,例如 COM、WinINET 等,您将需要 运行 另一个系统上的可执行文件并在它们之间有某种 IPC 机制。
快速简单(假设您的输出是标准输出上的单个文本行:
exec("yourprog.exe file1 file2",$res);
echo "result is " . $res[0];