Пространства имён
Варианты
Действия

std::_Exit

Материал из cppreference.com
< cpp‎ | utility‎ | program
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Утилиты поддержки программ
Прерывание программы
(C++11)
_Exit
(C++11)
Недостижимый поток управления
Взаимодействие с окружением
Сигналы
Типы сигналов
Нелокальные перех��ды
Типы
 
Определено в заголовочном файле <cstdlib>
[[noreturn]] void _Exit( int exit_code );
(начиная с C++11)

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

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

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

Содержание

[править] Параметры

exit_code статус выхода из программы

[править] Возвращаемое значение

(нет)

[править] Пример

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

Вывод:

тест

[править] Смотрите также

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