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 _onexit
para, 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 exit
llamadas , _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
, _cexit
y _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 exit
funció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 );
}
Vea 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