exit, _Exit, _exit

Finaliza el proceso de llamada. La función exit lo finaliza después de la limpieza; _exit y _Exit lo finalizan inmediatamente.

Nota:

No utilice este método para cerrar una aplicación de la Plataforma universal de Windows (UWP), excepto en escenarios de pruebas o depuración. Las formas de cerrar una aplicación de Store mediante programación o con la interfaz de usuario no están permitidas según las Directivas de Microsoft Store. Para obtener más información, consulte Ciclo de vida de la aplicación para UWP. Para obtener más información acerca de las aplicaciones para UWP, consulte Documentación de la Plataforma universal de Windows.

Sintaxis

void exit(
   int const status
);
void _Exit(
   int const status
);
void _exit(
   int const status
);

Parámetros

status
Código de estado de salida.

Comentarios

Las funciones exit, _Exit y _exit finalizan el proceso que realiza la llamada. La función exit llama a destructores para los objetos locales para el subproceso y, después, llama (en orden LIFO, donde el último en entrar es primero en salir) a las funciones registradas por atexit y _onexitpara, a continuación, vaciar todos los búferes de archivo antes de finalizar el proceso. Las funciones _Exit y _exit finalizan el proceso sin destruir objetos locales para el subproceso ni procesar funciones atexit o _onexit y sin vaciar los búferes de secuencia.

Aunque las exitllamadas , _Exit y _exit no devuelven un valor, el valor de status está disponible para el entorno de host o el proceso de llamada en espera, si existe, después de que se cierre el proceso. Normalmente, el autor de la llamada establece el valor de status en 0 para indicar una salida normal, o en otro valor para indicar un error. El valor de status está disponible para el comando de proceso por lotes ERRORLEVEL del sistema operativo y se representa mediante una de dos constantes: EXIT_SUCCESS, que representa un valor de 0, o EXIT_FAILURE, que representa un valor de 1.

Las funciones exit, _Exit, _exit, quick_exit, _cexity _c_exit se comportan como sigue.

Función Descripción
exit Realiza procedimientos completos de finalización de la biblioteca de C, finaliza el proceso y proporciona el código de estado facilitado al entorno de host.
_Exit Realiza procedimientos mínimos de finalización de la biblioteca de C, finaliza el proceso y proporciona el código de estado facilitado al entorno de host.
_exit Realiza procedimientos mínimos de finalización de la biblioteca de C, finaliza el proceso y proporciona el código de estado facilitado al entorno de host.
quick_exit Realiza procedimientos rápidos de finalización de la biblioteca de C, finaliza el proceso y proporciona el código de estado facilitado al entorno de host.
_cexit Realiza procedimientos completos de finalización de la biblioteca de C y vuelve al llamador. No finaliza el proceso.
_c_exit Realiza procedimientos mínimos de finalización de la biblioteca de C y vuelve al llamador. No finaliza el proceso.

Cuando se llama a la exitfunción , _Exit o _exit , no se llama a los destructores de los objetos temporales o automáticos que existen en el momento de la llamada. Un objeto automático es un objeto local no estático definido en una función. Un objeto temporal es un objeto creado por el compilador, como un valor devuelto por una llamada a función. Para destruir un objeto automático antes de llamar a exit, _Exit o _exit, llame explícitamente al destructor del objeto, como se muestra aquí:

void last_fn() {}
    struct SomeClass {} myInstance{};
    // ...
    myInstance.~SomeClass(); // explicit destructor call
    exit(0);
}

No use DLL_PROCESS_ATTACH para llamar exit desde DllMain. Para salir de la función DLLMain, devuelva FALSE desde DLL_PROCESS_ATTACH.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Requisitos

Función Encabezado necesario
exit, _Exit, _exit <process.h> o <stdlib.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Ejemplo

// crt_exit.c
// This program returns an exit code of 1. The
// error code could be tested in a batch file.

#include <stdlib.h>

int main( void )
{
   exit( 1 );
}

Consulte también

Control de procesos y entornos
abort
atexit
_cexit, _c_exit
Funciones _exec, _wexec
_onexit, _onexit_m
quick_exit
Funciones _spawn, _wspawn
system, _wsystem