Разница между функциями atexit и std::exit в C++ заключается в их назначении:
- Функция atexit при завершении работы программы передаёт управление другой функции, которая будет выполняться на выходе. 47 Это возможность выполнить какие-то действия перед тем, как программа будет завершена, например: отправить уведомление по сети, сохранить какие-то данные. 7
- Функция std::exit используется для завершения программы. 3 Она принимает в качестве аргумента код статуса выхода, который обычно равен EXITSUCCESS (0) для успешного завершения или EXITFAILURE (ненулевое значение) для неудачи. 3
Таким образом, std::exit завершает программу, а atexit позволяет зарегистрировать функции, которые будут вызваны при выходе из неё. 34