Estado de salida


El estado de salida de un proceso en la programación informática es un pequeño número que pasa de un proceso secundario (o llamado) a un proceso principal (o llamador) cuando ha terminado de ejecutar un procedimiento específico o una tarea delegada. En DOS , esto puede denominarse nivel de error .

Cuando se ejecutan programas de computadora, el sistema operativo crea una entidad abstracta llamada proceso en el que se lleva la contabilidad de ese programa. En sistemas operativos multitarea como Unix o Linux , los procesos activos pueden crear nuevos procesos. El proceso que genera otro se denomina proceso principal , mientras que los creados son procesos secundarios . Los procesos secundarios se ejecutan simultáneamente con el proceso principal. La técnica de generación de procesos secundarios se utiliza para delegar parte del trabajo a un proceso secundario cuando no hay motivo para detener la ejecución del principal. Cuando el niño termina de ejecutar, sale llamando a la salida llamada del sistema . Esta llamada al sistema facilita el paso del código de estado de salida al padre, que puede recuperar este valor mediante la llamada al sistema de espera .

El padre y el niño pueden comprender el significado de los estados de salida. Por ejemplo, es una práctica de programación común que un proceso hijo devuelva (salga con) cero al padre, lo que significa éxito. Además de este valor devuelto por el hijo, otra información, como la forma en que finalizó el proceso, ya sea normalmente o mediante una señal , también puede estar disponible para el proceso principal.

El conjunto específico de códigos devuelto es exclusivo del programa que lo establece. Por lo general, indica éxito o fracaso. El valor del código devuelto por la función o el programa puede indicar una causa específica de falla. En muchos sistemas, cuanto mayor sea el valor, más grave será la causa del error. [1] Alternativamente, cada bit puede indicar una condición diferente, que luego son evaluados por el operador o juntos para dar el valor final; por ejemplo, fsck hace esto.

A veces, si los códigos están diseñados con este propósito en mente, se pueden usar directamente como un índice de rama al regresar al programa de inicio para evitar pruebas adicionales.

Para los propósitos del shell, un comando que finaliza con un estado de salida cero ha tenido éxito. Un estado de salida distinto de cero indica un error. Este esquema aparentemente contrario a la intuición se usa para que haya 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 shell establece la variable $? a un valor superior a 128. La mayoría de los shells usan 128+N, mientras que ksh93 usa 256+N.