Стандарт C ++ не определяет, что происходит, когда вы выходите из программы нечистыми методами (т. Е. Извлекаете из окна консоли).
Однако он определяет, что делатьожидается, что при вызове std::abort
.
вызов функции std::abort()
, объявленной в <cstdlib>
, завершает программу без выполнения каких-либо деструкторов и без вызова функций, переданных в std::atexit()
или std::at_quick_exit()
.
Наиболее вероятный результат нечистого выхода из программы - это то, что вы ожидаете увидеть при вызове std::abort()
.
Будет ли системаоставьте файл открытым после завершения программы
Даже если деструкторы объектов, которые вызываются при чистом выходе из программы, не вызываются в аварийном завершении, ОС, скорее всего, закроет дескрипторы открытых файлов.По крайней мере, это то, что я наблюдал в Windows и Linux.Если с выходными файлами / потоками связаны какие-либо незаполненные буферы, вы не увидите их очищенными.