exit – завершение работы программы
Синтаксис:
#include < stdlib.h >
void exit (int code);
Аргументы:
int code – определяет статус завершения работы, 0 (EXIT_SUCCESS)– нормальное завершение работы, отличное от нуля значение (EXIT_FAILURE) – завершение работы с индикацией ошибки.
Возвращаемое значение:
Ничего не возвращает.
Описание:
Функция exit (), завершает работу программы. Аргумент code указывает статус завершения работы. При завершении работы в штатном порядке рекомендуется указывать значение статуса 0 или EXIT_SUCCESS. В противном случае рекомендуется указывать отличное от нуля значение или EXIT_FAILURE.
При вызове функции exit () в начале вызываются все функции зарегистрированные функцией atexit () в порядке обратном регистрации. Если какие то функции были зарегистрированы несколько раз, то они будут вызваны столько раз, сколько раз были зарегистрированы.
Затем сбрасываются и закрываются все открытые программой потоки данных и удаляются все созданные временные файлы (созданные с помощью функции tmpfile()). Затем завершается работы программы.
Пример:
В примере, организуется бесконечный цикл, в котором анализируются символы, вводимые в стандартный поток ввода-вывода. Как только программа встречает символ ‘e’, она завершает работу, вызывая функцию exit (). В качестве параметра функции указывается статус EXIT_SUCCESS, так как завершение работы штатное.
#include < stdio.h > //Для puts
#include < stdlib.h > //Для exit () и atexit ()
void f_MyEnd (void); //Декларация функций, которая будет вызвана при
//завершении работы с помощью функции exit ()
int main (void)
{
int Pwork=0;
int MyChar=0;
//Регистрация функции, которая будет вызвана при
//нормальном завершении работы
Pwork = atexit (f_MyEnd);
//Проверка регистрации функции MyEnd_s
if (Pwork != 0)
{
puts (“Ошибка регистрации функции f_MyEnd ”);
}
//Бесконечный цикл
while (1)
{
//Считывание символа из стандартного потока ввода-вывода
MyChar = getchar ();
//Если считан симовл ‘e’ завершаем работу программы
if (MyChar == ‘e’)
exit (EXIT_SUCCESS); //Завершение работы программы
}
return 0;
}
//Функция, вызываемая при завершении работы
void f_MyEnd (void)
{
//Вывод сообщения о завершении работы
puts (“Работа завершена”);
}
| |
Результат:
Смотри так же:
_Exit,
_exit,
abort,
atexit,
exit
|