Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试从PHP执行用C编译的文件_Php_C - Fatal编程技术网

尝试从PHP执行用C编译的文件

尝试从PHP执行用C编译的文件,php,c,Php,C,我试图从PHP脚本中获取我在C中编写的文件以执行。虽然我没有收到任何错误,但它没有响应。我可以通过/serialTest Blah Blah从命令行运行脚本,预期结果是获取命令行参数并将其输出到LCD屏幕,该屏幕可以从命令行运行 为了让它在PHP中运行,我正在使用exec(“./serialTest”。$inputField这个项目的目标是从文本字段中的网页中获取他们的输入,它将使其显示在LCD屏幕上,他们可以通过实时网络摄像头查看他们键入的内容 脚本未执行。我的代码中是否有错误?或者这不可能?

我试图从
PHP
脚本中获取我在
C
中编写的文件以执行。虽然我没有收到任何错误,但它没有响应。我可以通过
/serialTest Blah Blah
从命令行运行脚本,预期结果是获取命令行参数并将其输出到LCD屏幕,该屏幕可以从命令行运行

为了让它在
PHP
中运行,我正在使用
exec(“./serialTest”。$inputField
这个项目的目标是从文本字段中的网页中获取他们的输入,它将使其显示在LCD屏幕上,他们可以通过实时网络摄像头查看他们键入的内容

脚本未执行。我的代码中是否有错误?或者这不可能?如果不能以这种方式执行,我想知道是否有替代方法。我意识到允许这样做可能会带来一些重大的安全威胁,但对我和一些朋友来说,这只是家庭服务器上一个有趣的项目。

您可以尝试一件事:

exec("./serialTest   {$inputField}", $output, $status);
echo "status: " . $status;
echo "output: " . implode("\n", $output);

如果启用了安全模式,则只能在安全模式执行目录中执行文件


也许您应该将C程序的所有者/组更改为php、apache或网站文件的“用户”。

您不能使用
exec
命令在命令提示符中显示输出,它将只在网页中显示结果。我意识到我在C中编写的脚本使用串行端口将信号发送到完全独立的2x16 LCD从计算机上。我没有尝试将其
回显到网页中。
C
脚本接受
/serialTest
之后的任何命令行参数,并将其输出到LCD。如果您的脚本在LCD屏幕上显示输出,则可能是您没有提供正确的文件路径来执行该命令。请尝试提供full file path..除了@YogeshSuthar建议之外,请查看手册中的exec返回和参数。
string exec(string$command[,array&$output[,int&$return\u var])
我们需要更多信息:您的命令需要什么作为参数(文件?字符串?)?您在PHP中执行的代码是什么?您是否要求按需终止执行?您是否可以尝试一下二进制文件的完整路径。为了更清楚,请尝试运行更改的命令?如果
$inputFileId='(rm*)“;
?看看。我尝试了更改后的代码,它说
状态:1输出:
,但它仍然没有执行OK我想我已经发现了问题,我一直在以
root
身份从命令行进行所有测试,我以
pi
默认用户身份重新登录,它不允许我运行
php脚本。php
it says
无法打开串行设备:权限被拒绝
,因此我知道这是我的问题,但现在我必须找出如何使命令以
根用户身份运行
我尝试了安全模式,但在进一步阅读文档时找不到它,它说它已被删除。