std::_Exit - cppreference.com
De cppreference.com
| Definido en el archivo de encabezado |
||
|
|
(desde C++11) | |
Causa que ocurra la terminación normal del programa sin limpiar completamente los recursos.
No se llama a los destructores de variables con duraciones de almacenamiento automática, local al hilo y estática. No se llama a las funciones pasadas a std::at_quick_exit() o std::atexit(). Está definido por la implementación si se cierran o no recursos abiertos, tales como archivos.
Si exit_code es 0 o EXIT_SUCCESS, se devuelve un estatus definido por la implementación que indica terminación con éxito al entorno anfitrión. Si exit_code es EXIT_FAILURE, se devuelve un estatus definido por la implementación que indica terminación sin éxito. En otros casos se devuelve un valor de estatus definido por la implementación.
Parámetros
| exit_code | - | Estatus de salida del programa. |
Valor de retorno
(Ninguno)
Ejemplo
#include <iostream> class Static { public: ~Static() { std::cout << "destructor de Static \n"; } }; class Local { public: ~Local() { std::cout << "destructor de Local\n"; } }; Static static_variable; // no se llamará al destructor de este objeto void atexit_handler() { std::cout << "controlador de atexit\n"; } int main() { Local local_variable; // no se llamará al destructor de este objeto // no se llamará al controlador const int result = std::atexit(atexit_handler); if (result != 0) { std::cerr << "falla al registrarse con atexit\n"; return EXIT_FAILURE; } std::cout << "prueba" << std::endl; // vaciar desde std::endl // necesita estar aquí, de otra forma no se imprimirá nada std::_Exit(EXIT_FAILURE); }
Salida: