ALEGSA.com.ar

Definición de estado de salida (código de retorno)

Significado de estado de salida: El estado de salida es el número devuelto por un proceso informático hijo a su padre cuando finaliza. Su propósito es indicar que el software ...
31-07-2023

 


Definición de estado de salida (código de retorno)

 

El estado de salida es el número devuelto por un proceso informático hijo a su padre cuando finaliza. Su propósito es indicar que el software funcionó correctamente o que falló de alguna manera.

El valor de un estado de salida es un entero. Usualmente, el valor 0 indica que el proceso de salida fue exitoso, y 1 (o más) indica que falló.

También conocido como: código de salida, código de resultado, estado de salida, código de retorno, exit code, exit status o return code. En Microsoft Windows y MS-DOS, el estado de salida se llama errorlevel.

El estado de salida es una herramienta fundamental en la programación y en los sistemas operativos. Permite a los programas y procesos informar su resultado al padre y proporcionar información sobre su ejecución.

En el caso de un proceso hijo que finaliza correctamente, devolver un valor de estado de salida 0 permite al padre saber que todo salió como se esperaba. Esto es especialmente útil en secuencias de comandos y automatización de tareas, donde el padre puede tomar decisiones en función de si el proceso hijo ejecutó correctamente o no.

Por otro lado, cuando el valor de estado de salida es diferente de 0, indica que algo salió mal durante la ejecución del proceso hijo. Esto permite al padre detectar y manejar errores de manera apropiada. Por ejemplo, si un programa devuelve un estado de salida de 1, el padre puede mostrar un mensaje de error al usuario o tomar medidas para corregir el problema.

Es importante mencionar que los estados de salida no se limitan solo a los valores 0 y 1. En algunos sistemas operativos, se pueden usar valores enteros positivos o negativos para indicar diferentes tipos de errores o condiciones especiales. Además, algunos lenguajes de programación también permiten definir y utilizar códigos de estado personalizados para adaptarse a las necesidades específicas de una aplicación.

En resumen, el estado de salida es una forma efectiva de comunicación entre los procesos padre e hijo en la programación. Proporciona información sobre el resultado de la ejecución de un programa y permite tomar decisiones basadas en esos resultados. Es una herramienta fundamental para garantizar la correcta funcionamiento de los sistemas informáticos.



Funcionamiento del estado de salida



El estado de salida de un proceso en la programación de la computadora es un pequeño número que pasa de un proceso secundario (el llamado) a un proceso principal (el llamador) cuando termina de ejecutar un procedimiento específico o una tarea delegada.

Cuando se ejecutan programas de computadora, el sistema operativo crea una entidad abstracta llamada proceso en la que se mantiene la contabilidad para ese programa.

En sistemas operativos multitarea, como Unix o Linux, los procesos activos pueden crear nuevos procesos. El proceso que engendra a otro se llama proceso principal (padre), mientras que los creados son procesos secundarios (hijos).

Los procesos secundarios se ejecutan simultáneamente con el proceso principal. La técnica de engendrar procesos secundarios se usa para delegar un trabajo en un proceso secundario cuando no hay motivo para detener la ejecución del elemento principal.

Cuando el hijo termina de ejecutarse, sale llamando a la llamada del sistema de salida. Esta llamada al sistema facilita pasar el código de estado de salida al padre, que puede recuperar este valor utilizando la llamada al sistema de espera.



Estado de salida en Windows



Windows usa enteros sin signo de 32 bits como estados o códigos de salida, aunque el intérprete de comandos los trata como firmados. Si un proceso falla la inicialización, se puede devolver un código de error del sistema de Windows.

Los códigos de salida se referencian directamente, por ejemplo, por el intérprete de línea de comandos CMD.exe en la terminología de nivel de error heredada de DOS. Los procesos de .NET Framework y Windows PowerShell se refieren a él como la propiedad ExitCode del objeto Process.



Estado de salida en Java



En Java, cualquier método puede llamar a System.exit (int status), a menos que un administrador de seguridad no lo permita. Esto terminará la máquina virtual Java actualmente en ejecución. El argumento o parámetro sirve como un código de estado: por convención, un código de estado distinto de cero indica una terminación anormal.



Estado de salida en DOS



En la terminología de DOS, un errorlevel es un código de salida entero devuelto por un programa ejecutable o una subrutina. Los niveles de error suelen oscilar entre 0 y 255. En DOS solo hay 256 códigos de error disponibles.

Los estados de salida a menudo son capturados por programas por lotes.



Estado de salida en lenguaje C



El lenguaje de programación C permite que los programas que salen o vuelven de la función principal señalen el éxito o el fracaso devolviendo un número entero o devolviendo las macros EXIT_SUCCESS y EXIT_FAILURE.

En los sistemas tipo Unix, estos son iguales a 0 y 1 respectivamente. Un programa C también puede usar la función exit() que especifica el estado entero o la macro de salida como primer parámetro.

Además de las macros EXIT_SUCCESS y EXIT_FAILURE, el estándar C no define el significado de los códigos de retorno. Las reglas para el uso de códigos de retorno varían en diferentes plataformas.



Estado de salida en Shell y scripts



El estado de salida de un comando de shell ejecutado es el valor devuelto por la llamada al sistema waitid o la función equivalente. El código de salida completo de 32 bits solo está disponible con la llamada a waitid, pero no con las interfaces de espera anteriores. Con interfaces de espera más antiguas, el código de salida visible solo contiene los 8 bits bajos del código de salida.

Los scripts de Shell generalmente ejecutan comandos y capturan sus estados de salida.

Para los propósitos del shell, un comando que sale con un estado de salida cero ha tenido éxito. Un estado de salida distinto de cero indica falla. Este esquema aparentemente contra-intuitivo se usa por lo que hay una forma bien definida de indicar el éxito y una variedad de formas de indicar varios modos de falla. Cuando un comando termina con una señal cuyo número es N, un intérprete de comandos establece la variable $? a un valor mayor que 128. La mayoría de los shells usan 128 + N, mientras que ksh93 usa 256 + N.

Si no se encuentra un comando, el shell debería devolver un estado de 127. Si se encuentra un comando pero no es ejecutable, el estado de retorno debería ser 126. Tenga en cuenta que este no es el caso para todos los shells.

Si un comando falla debido a un error durante la expansión o redirección, el estado de salida es mayor que cero.



Estado de salida en POSIX



En Unix y otros sistemas compatibles con POSIX, las llamadas al sistema waitpid() y la antigua wait() establecen un valor de estado de tipo int empaquetado como un campo de bits con varios tipos de información de terminación de hijo. Si el hijo finalizó al salir (según lo determinado por la macro WIFEXITED, la alternativa habitual es que murió a causa de una señal no detectada), SUS especifica que los 8 bits de bajo orden del estado de salida se pueden recuperar del valor de estado utilizando el WEXITSTATUS macro en espera.h; cuando se usa la llamada al sistema POSIX waitid() (agregado con SUSv1), el rango del estado ya no está limitado y puede estar en el rango entero de 32 bits. En la llamada al sistema waitid(), el estado de salida hijo y otra información ya no se encuentran en un campo de bits, sino en la estructura siginfo_t, las macros W* ya no se aplican.

Los sistemas compatibles con POSIX generalmente usan una convención de cero para el éxito y no cero para el error.

Existen algunas convenciones en cuanto a los significados relativos de varios códigos de error; por ejemplo, GNU recomienda que los códigos con el conjunto de bits alto se reserven para errores graves, en tanto FreeBSD ha documentado un amplio conjunto de interpretaciones preferidas. Los significados para 15 códigos de estado 64 a 78 se definen en sysexits.h. Históricamente, derivan de sendmail y otros agentes de transferencia de mensajes, pero desde entonces han encontrado uso en muchos otros programas.


Resumen: estado de salida



El estado de salida es un número que indica si un proceso informático finalizó correctamente o falló. Un valor de 0 significa éxito, mientras que 1 o más indica que hubo un error. También se le conoce como código de salida, código de resultado o código de retorno. En Windows se llama errorlevel.




¿Qué es un estado de salida en un proceso informático hijo?



El estado de salida es un número devuelto por un proceso informático hijo a su padre cuando finaliza. Este estado tiene el propósito de indicar si el software funcionó correctamente o si ocurrió algún tipo de error durante su ejecución.


¿Cuál es la importancia del estado de salida en un proceso informático?



El estado de salida es crucial para determinar si un proceso informático hijo se ejecutó correctamente o si se presentaron fallos. El padre puede utilizar este estado para tomar decisiones basadas en el resultado obtenido, como iniciar otros procesos o notificar al usuario sobre errores ocurridos.


¿Qué significa un estado de salida igual a cero?



Un estado de salida igual a cero indica que el proceso informático hijo finalizó sin errores. Es decir, el software funcionó correctamente y completó sus tareas sin inconvenientes.


¿Qué ocurre si el estado de salida es diferente a cero?



Si el estado de salida es diferente a cero, esto indica que el proceso informático hijo finalizó con algún tipo de error. La interpretación exacta de este valor puede variar según el software y el contexto, pero generalmente se utiliza para identificar el tipo de error ocurrido.


¿Puede un estado de salida tener valores negativos?



Sí, en algunos sistemas un estado de salida puede tener valores negativos. En estos casos, los valores negativos suelen indicar errores más graves o excepciones no controladas. Por ejemplo, un estado de salida igual a -1 podría indicar una falla crítica del software.


¿Qué sucede si un proceso informático hijo no devuelve un estado de salida?



Cuando un proceso informático hijo no devuelve un estado de salida, esto puede dificultar la detección de errores por parte del padre. En estos casos, puede ser necesario utilizar otras señales o mecanismos de comunicación para determinar si el proceso finalizó con éxito o si se produjo algún fallo.





Autor: Leandro Alegsa
Actualizado: 31-07-2023

¿Cómo citar este artículo?

Alegsa, Leandro. (2023). Definición de estado de salida. Recuperado de https://www.alegsa.com.ar/Dic/estado_de_salida.php

Diccionario informático



 


articulos
Asistente IA
Escribe tu consulta sobre informática y tecnologías al asistente de Inteligencia Artificial
¡te responderá en segundos!




* ACLARACIÓN: el asistente ha sido entrenado para responder tus dudas con muy buenos resultados, pero puede equivocarse, esta tecnología aún está en desarrollo. Te sugiero dejar tu email para que te contactemos para corregir la respuesta de la IA: leemos todas las consultas y respuestas.


Usa nuestro buscador para definiciones, informática y tecnologías