0

我正在设计一个从服务器上传代码并在其上运行 cppcheck 的 Web 应用程序。我正在使用 PHP。我尝试使用exec($command,$output,$status);命令,命令是"cppcheck ". $filename;

返回的 $output 数组仅包含第一行,即:

检查文件.cpp..

线

“(错误)在索引 10 处访问的数组 'a[10]' 超出范围。”

显示在 httpserver 的 error.log 文件中。其实不是命令行错误或者php错误,而是cppcheck产生的错误。是因为字符串包含“错误”而进入error.log吗?我该如何解决?

4

1 回答 1

0

正如@arkascha 正确指出的那样,cppcheck 的输出必须从stderr 流重定向到stdout。

根据手册,第 2.7 章

很多时候,您会希望将结果保存在文件中。您可以使用正常的 shell 重定向将错误输出通过管道传输到文件。

cppcheck file1.c 2> err.txt

您的电话将是

exec($command.' 2>&1', $output, $status);
于 2016-01-18T13:32:07.273 回答