В C ++ 11 или позже мы можем вызвать std::quick_exit
чтобы выйти из процесса без размотки, то есть деструктор не будет вызван [после | в течение] std::quick_exit
,
У меня есть проект:
std::quick_exit
на последней строчке main
функция, ошибка не будет запущена;std::quick_exit
в компиляторе C ++ 98.Короче:
Какая функция в C ++ 98 эквивалентна C ++ 11 std::quick_exit
?
Под виндой могу звонить ExitProcess(0)
принудительно завершить процесс без какой-либо очистки.
Какой аналог под Linux?
Ты можешь использовать abort()
от <cstdlib>
, Отправляет SIGABRT
к процессу, и если сигнал не пойман, программа завершается без вызова каких-либо процедур уничтожения, таких как atexit()
или любые деструкторы.
Больше информации здесь: ссылка на сайт
Редактировать: std::quick_exit
выходит нормально, тогда как вызов abort()
приводит к ненормальному завершению, не знаю, если это проблема.
Других решений пока нет …