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, возвращается зависящий от реализации статус, указывающий на неуспешное завершение. В остальных случаях возвращается зависящее от реализации значение статуса.
| От автономной реализации требуется предоставлять | (начиная с C++23) |
Параметры
| exit_code | - | код завершения программы |
Примечания
Хотя с C++23 _Exit требуется в автономной реализации, в автономной реализации C он не обязан быть доступен.
Пример
#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/cpp/utility/program/_Exit