Функция exit
Функция exit немедленно завершает выполнение программы.
В первый параметр мы передаем код завершения, который возвращается
операционной системе. Значение 0 или EXIT_SUCCESS
означает успешное завершение, а EXIT_FAILURE или любое
ненулевое значение - признак ошибки. При вызове exit
автоматически вызываются функции, зарегистрированные через
atexit, и сбрасываются буферы потоков ввода-вывода.
Функция объявлена в заголовочном файле <cstdlib>.
Синтаксис
exit(status)
Пример
Давайте завершим программу с кодом успешного выполнения 0:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
cout << "Program started" << endl;
exit(0);
cout << "This line will never print" << endl;
return 0;
}
Результат выполнения кода:
"Program started"
Пример
Давайте завершим программу с кодом ошибки EXIT_FAILURE
при выполнении некоторого условия:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int res = -1;
if (res < 0) {
cout << "Error occurred" << endl;
exit(EXIT_FAILURE);
}
cout << "All good" << endl;
return 0;
}
Результат выполнения кода:
"Error occurred"
Пример
Давайте зарегистрируем функцию через atexit и убедимся,
что она вызывается при завершении через exit:
#include <iostream>
#include <cstdlib>
using namespace std;
void cleanup()
{
cout << "Cleanup called" << endl;
}
int main()
{
atexit(cleanup);
cout << "Exiting now" << endl;
exit(0);
return 0;
}
Результат выполнения кода:
"Exiting now"
"Cleanup called"