¿Códigos PHP return_var?

3 minutos de lectura

avatar de usuario
Jeffrey Berthiaume

Estoy probando el comando php exec:

http://php.net/exec

y obtengo un código de resultado de 127.

Mi código php es:

<?

print "<br>executing 'hello':<br><b>";
exec ("hello", $output, $result);
var_dump($output);
print "<br>$result";
print "<br></b>end hello.";


print "<br><hr><br>";


print "<br>executing 'dir':<br><b>";
exec("dir", $output2, $result2);
var_dump($output2);
print "<br>$result2";
print "<br></b>end dir.";

?>

Y la salida es:

executing 'hello':
array(0) { } 
127
end hello.


executing 'dir':
array(2) { [0]=> string(42) "bs1.jpg hello  index.htm ml1_1.jpg pp1.jpg" } 
0
end dir.

La documentación de php (hasta donde pude encontrar) dice esto:

return_var

Si el argumento return_var está presente junto con el argumento de salida, el estado de retorno del comando ejecutado se escribirá en esta variable.

…pero no tiene una lista de posibilidades de salida o una forma de buscarlas.

¿Alguna sugerencia?

Los códigos de retorno pueden ser un poco arbitrarios. Sin embargo, básicamente, cualquier valor de retorno distinto de cero es un error. aquí hay una lista de algunos comunes, pero por lo general, a menos que esté trabajando con un programa específico, es más fácil asumir que no es cero = se encontró algún error, en lugar de tratar de asignar varios programas diferentes a códigos de error específicos.

avatar de usuario
antonio forloney

El código de retorno 127 significa No se pudo encontrar el procedimiento especificado.

Suponiendo que está en Windows, Códigos de error del sistema de Windows

avatar de usuario
Álvaro González

Los valores devueltos son completamente arbitrarios. Cuando escribe un programa, puede hacer que devuelva el valor que desee. En PHP, puedes hacerlo con el salida construcción del lenguaje:

<?php
exit(33);

Puede encontrar el código de estado exacto para una pieza específica de software en su documentación (dado que el autor realmente lo documentó). Sin embargo, existe un acuerdo común de que 0 significa “OK” y cualquier otra cosa significa “hubo un problema”, por lo que normalmente es suficiente verificar con cero.

En su caso, parece que está intentando ejecutar un programa que no existe. PHP ejecuta programas externos a través del shell del sistema, por lo que es probable que el valor provenga de bash o del shell predeterminado que tenga. En Unix, hay algunos códigos de salida con significados especiales y 127 medio Comando no encontrado.

ejecutivo() opera en un archivo externo y recibe el código de retorno desde allí o desde el sistema operativo. Si el 127 proviene del sistema operativo, significa que el archivo no se encontró en su ruta definida.

Si, por otro lado, el 127 proviene de la aplicación que está ejecutando, deberá consultar la documentación de esa aplicación para saber qué significa.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad