Namespaces
Variants

std:: _Exit

From cppreference.net
Utilities library
Определено в заголовочном файле <cstdlib>
[ [ noreturn ] ] void _Exit ( int exit_code ) noexcept ;
(начиная с C++11)

Вызывает нормальное завершение программы без полной очистки ресурсов.

Деструкторы переменных с автоматической, потоковой локальной и статической продолжительностью хранения не вызываются. Функции, переданные в std::at_quick_exit() или std::atexit() не вызываются. Будет ли выполнено закрытие открытых ресурсов, таких как файлы, определяется реализацией.

Если exit_code равен 0 или EXIT_SUCCESS , возвращается определенный реализацией статус, указывающий на успешное завершение, в среду выполнения. Если exit_code равен EXIT_FAILURE , возвращается определенный реализацией статус, указывающий на неуспешное завершение. В остальных случаях возвращается определенное реализацией значение статуса.

Автономная реализация обязана предоставлять std::_Exit .

(since C++23)

Содержание

Параметры

exit_code - статус завершения программы

Возвращаемое значение

(нет)

Примечания

Хотя _Exit требуется быть доступным в автономной реализации начиная с C++23, он не требуется для автономной реализации на языке C.

Пример

#include <iostream>
class Static
{
public:
    ~Static() 
    {
        std::cout << "Static dtor\n";
    }
};
class Local
{
public:
    ~Local() 
    {
        std::cout << "Local dtor\n";
    }
};
Static static_variable; // деструктор этого объекта *не* будет вызван
void atexit_handler()
{
    std::cout << "atexit handler\n";
}
int main()
{
    Local local_variable; // деструктор этого объекта *не* будет вызван
    // обработчик *не* будет вызван
    const int result = std::atexit(atexit_handler);
    if (result != 0)
    {
        std::cerr << "atexit registration failed\n";
        return EXIT_FAILURE;
    }
    std::cout << "test" << std::endl; // сброс буфера от std::endl
        // должен быть здесь, иначе ничего не будет выведено
    std::_Exit(EXIT_FAILURE);
}

Вывод:

test

Смотрите также

вызывает аварийное завершение программы (без очистки)
(функция)
вызывает нормальное завершение программы с очисткой
(функция)