Namespaces
Variants

std:: _Exit

From cppreference.net
Utilities library
Definido en el encabezado <cstdlib>
[ [ noreturn ] ] void _Exit ( int exit_code ) noexcept ;
(desde C++11)

Causa la terminación normal del programa sin limpiar completamente los recursos.

Los destructores de variables con duraciones de almacenamiento automático, local de hilo y estático no son llamados. Las funciones pasadas a std::at_quick_exit() o std::atexit() no son llamadas. El cierre de recursos abiertos como archivos está definido por la implementación.

Si exit_code es 0 o EXIT_SUCCESS , se retorna al entorno anfitrión un estado definido por la implementación que indica terminación exitosa. Si exit_code es EXIT_FAILURE , se retorna un estado definido por la implementación que indica terminación no exitosa . En otros casos se retorna un valor de estado definido por la implementación.

Una implementación independiente debe proporcionar std::_Exit .

(since C++23)

Contenidos

Parámetros

exit_code - estado de salida del programa

Valor de retorno

(ninguno)

Notas

Aunque _Exit es obligatorio en implementaciones independientes desde C++23, no es obligatorio que esté disponible en una implementación C independiente.

Ejemplo

#include <iostream>
class Static
{
public:
    ~Static() 
    {
        std::cout << "Static dtor\n";
    }
};
class Local
{
public:
    ~Local() 
    {
        std::cout << "Local dtor\n";
    }
};
Static static_variable; // el dtor de este objeto *no* será llamado
void atexit_handler()
{
    std::cout << "atexit handler\n";
}
int main()
{
    Local local_variable; // el dtor de este objeto *no* será llamado
    // el handler *no* será llamado
    const int result = std::atexit(atexit_handler);
    if (result != 0)
    {
        std::cerr << "atexit registration failed\n";
        return EXIT_FAILURE;
    }
    std::cout << "test" << std::endl; // flush de std::endl
        // debe estar aquí, de lo contrario no se imprimirá nada
    std::_Exit(EXIT_FAILURE);
}

Salida:

test

Véase también

provoca la terminación anormal del programa (sin limpieza)
(función)
provoca la terminación normal del programa con limpieza
(función)