std::_Exit
Определено в заголовочном файле <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, возвращается определяемое реализацией значение, указывающее на неудачное завершение. В других случаях возвращается определяемое реализацией значение.
Параметры
| exit_code | - | код завершения программы |
Возвращаемое значение
(не используется)
Пример
#include <iostream>
class Static
{
public:
~Static()
{
std::cout << "Static dtor\n";
}
};
class Local
{
public:
~Local()
{
std::cout << "Local dtor\n";
}
};
Static static_variable; // dtor of this object will *not* be called
void atexit_handler()
{
std::cout << "atexit handler\n";
}
int main()
{
Local local_variable; // dtor of this object will *not* be called
// handler will *not* be called
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 from std::endl
// needs to be here, otherwise nothing will be printed
std::_Exit(EXIT_FAILURE);
}Вывод:
test
См. также
| вызывает аномальное завершение программы (без освобождения ресурсов) (функция) |
|
| вызывает нормальное завершение программы с освобождением ресурсов (функция) |
|
Документация на C для _Exit |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/program/_Exit