gcc — PHP system () работает для некоторых команд, но не для всех

У меня есть веб-сервер, размещенный на Raspberry Pi B +, на котором работает Raspbian. У меня всегда есть php «shell», который я могу использовать, но кажется, что мой может быть как-то испорчен. Это текстовая область HTML, с name="phptorun"и файл действия просто делает eval($_POST['phptorun']);

Так как я просто спрятал свой RPi под столом без дисплея, я часто использую свой телефон для доступа к командной строке.

Мой вопрос:

Когда я запускаю что-то вроде system("ls"); я получаю вывод и содержимое рабочего каталога отображается. Я работаю над C «компилятором» (он просто использует командную строку gcc) но, когда я делаю system("gcc");
я не получаю выход вообще. я знаю, что команда gcc выводит вывод, потому что я делал это раньше на другом компьютере.

Так почему же system("gcc"); не работает?

И если gcc не установлен, я не получу вывод, просто ошибка?

0

Решение

Вам нужно получить больше информации, возможно, что gcc выводит что-то на STDERR например, который вы пропускаете при использовании system функция.

Лучше попробуй использовать exec функция:

 exec("gcc 2>&1", $output, $return_code);

Объяснение:

  • gcc 2>&1 переадресовывает STDERR вывод на STDOUT
  • STDOUT попадает в $output переменная
  • код возврата команды находится в переменной $return_code
1

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

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

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