Что такое возвращаемое значение PHP exec ()?

Я пытаюсь использовать функцию PHP exec ().

Если аргумент return_var присутствует вместе с выходным аргументом, тогда статус возврата выполненной команды будет записан в эту переменную.

Если выполнение было успешным, оно равно 0. Однако, если есть ошибка, это может быть множество других целых чисел. Кажется, я не могу найти нигде, с чем соответствуют эти целые числа. Как интерпретировать целое число, которое я получаю?

Обновить:

Я действительно должен был указать это первоначально, но я выполняю еще один PHP-скрипт. В отличие от rsync, который имеет значения выхода на своей странице руководства, я не могу найти эквивалент для PHP.

Так что я делаю что-то вроде:

$rv = exec('php file.php', $out, $rv); 

Возвращаемое значение зависит от процесса / программы, которую вы запускали с помощью exec. Например, если вы запустили grep:

Статус выхода равен 0, если выбраны линии, и 1, если они не найдены. Если произошла ошибка, статус выхода равен 2. (Примечание: код обработки ошибок POSIX должен проверяться на «2» или выше).

rsync имеет около 20 различных кодов выхода ошибок, все изящно объясненные на странице руководства:

http://linux.die.net/man/1/rsync

так что да, это зависит от программы 🙂

Даже если вы используете PHP-скрипт, значение выхода зависит от вашей самой программы. По умолчанию скрипты php завершатся с 0. Если вы используете функцию выхода, вы можете возвращать разные коды выхода:

http://php.net/manual/en/function.exit.php

Если вы хотите экспериментально определить, что ваша программа php выйдет, вызовите ее в командной строке:

 php file.php 

затем сделайте

 echo $? 

это покажет вам значение выхода вашего скрипта php.

IMHO, перед использованием функции exec () лучше задайте параметры вывода и return_var и прочитайте выполнение кода возврата return_var. Не полагайтесь на возвращаемое значение exec ().

Просмотрите страницу руководства для команды, которую вы выполняете. Это значение не имеет ничего общего с PHP, но фактическая команда.