Php 使用LAMP在服务器上运行C程序可执行文件-对C代码做了哪些修改?

Php 使用LAMP在服务器上运行C程序可执行文件-对C代码做了哪些修改?,php,c,daemon,Php,C,Daemon,我计划将C程序的可执行文件放在服务器上,并使用PHP脚本运行它-作为Web API:例如echo exec(“myscript.exe”) 当前,myscript在命令提示符下运行-它接受两个输入文件并返回一个整数或浮点数。当前,代码在命令提示符下获取输入文件 需要对现有程序进行哪些修改?我听说了HTTP网桥和守护进程,但不确定我需要什么,如果有的话 更新: 目前唯一的其他依赖项是libsndfile,它在Linux上可用。C程序是在Linux上开发的。答案实际上取决于C应用程序使用的API。如

我计划将C程序的可执行文件放在服务器上,并使用PHP脚本运行它-作为Web API:例如
echo exec(“myscript.exe”)

当前,myscript在命令提示符下运行-它接受两个输入文件并返回一个整数或浮点数。当前,代码在命令提示符下获取输入文件

需要对现有程序进行哪些修改?我听说了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];

myscript.exe不会在linux服务器上运行。C程序不依赖于COM、WinINET等。但它使用的是sndfile-C程序是在Ubuntu上开发的。所以只需在目标服务器环境中重新编译并使用php脚本运行它……不需要其他任何东西?是的,一切都应该很好。一个合理的警告:从我的移植和运行经验来看在不同的环境下运行应用程序会暴露出一些在原始系统下没有出现或无害的错误。如果您发现某个评论、答案或响应有帮助,请记住投票奖励作者的时间!如果几天后您发现该答案特别有帮助,请将该答案标记为已接受。Thank you Mark-为什么有些人谈论http网桥和守护进程?作为守护进程运行有什么好处吗?我在这里没有看到任何关于网桥和守护进程的评论;但是,根据您的应用程序,使用架构而不是每个请求的进程可能会有好处。根据您的代码,“yourprog.exe file1 file2”,将给我一组数字,比如2、23、54、23、43。假设总有5组数字。当我实现上述代码时,$res没有捕获输出,而是给出了初始化值。我应该如何初始化$res?为什么$res没有捕获输出?