Ошибка запуска Cppcheck с командой exec () в переполнении стека

Я разрабатываю веб-приложение, которое загружает код с сервера и запускает на нем cppcheck. Я использую PHP для того же.
Я пытался с помощью exec($command,$output,$status); команда
и команда "cppcheck ". $filename;

Возвращаемый массив $ output содержит только первую строку, т.е.

Проверка file.cpp ..

Линия

msgstr «(ошибка) Массив ‘a [10]’ доступен по индексу 10, который находится за пределами.»

отображается в файле error.log http-сервера. На самом деле это не ошибка командной строки или php, а ошибка, созданная cppcheck. Это потому, что строка содержит «error», она входит в error.log? Как это исправить?

0

Решение

Как правильно заметил @arkascha, вывод из cppcheck должен быть перенаправляется из потока stderr в стандартный вывод.

В соответствии с руководство, глава 2.7:

Много раз вы захотите сохранить результаты в файл. Вы можете использовать нормальное перенаправление оболочки для трубопроводов
вывод ошибок в файл.

cppcheck file1.c 2> err.txt

Ваш звонок будет тогда

exec($command.' 2>&1', $output, $status);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]