std::_Exit
De cppreference.com
<tbody>
</tbody>
| Definido en el archivo de encabezado <cstdlib>
|
||
[[noreturn]] void _Exit( int exit_code ) noexcept; |
(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
Ejecuta este código
#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:
prueba
Véase también
| Produce la terminación anormal del programa (sin limpiar). (función) | |
| Produce la terminación normal del programa con limpieza. (función) | |
Documentación de C para _Exit
| |