在 PHP 上运行C++可执行文件
Run C++ executable on PHP
我想编写PHP脚本,它在Linux机器上执行C++可执行文件。我使用 exec() 或 system() PHP 函数。但它不执行可执行文件C++。我的代码如下。Proc 编译C++可执行文件。完全相同的命令在外壳中工作正常。
echo system('/var/www/image_proc/proc "/var/www/image_proc/images/original/5_1.png" 70 0 0 "/var/www/image_proc/images/processed/5_2.png"');
我检查了执行和写入文件的所有权限。我使用绝对路径来确保它不是路径问题。
有谁知道,可能有什么问题?任何帮助,不胜感激。
我怀疑问题是引号的使用。SHELL 可能会扩展/评估这些,但调用 system() 不会。 libc 系统
因此,建议的解决方案是:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
$src = "/var/www/image_proc/images/original/5_1.png";
$dst = "/var/www/image_proc/images/processed/5_2.png";
$cmd = sprintf("/var/www/image_proc/proc %s 70 0 0 %s", $src, $dst);
$result = system($cmd, $retval);
printf("Result: '%s'nnReturn value: %dnn", $result, $retval);
?>
这将输出命令的结果或有用的错误信息。特别重要的是,这为我们提供了一个返回值,我们可以根据该值找出发生了什么。
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 linux 可执行文件中使用静态库
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 编译的C可执行文件被Windows defender检测为病毒
- Linux 可执行文件通过 dlopen 在emplace_back崩溃打开共享库
- 是否可以在命令行中将输入参数传递给可执行文件
- 如何在可执行文件中存储常量数组?
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 可执行文件C++包括.obj,.lib和.dll吗?
- 无法在 Linux 上运行C++ ZMQ 项目的可执行文件
- 从 C 可执行文件加载动态库时收到错误C++"undefined symbol"