_Exit – завершение работы программы
Синтаксис:
#include < stdlib.h >
void _Exit (int code);
Аргументы:
int code – определяет статус завершения работы, 0 (EXIT_SUCCESS)– нормальное завершение работы, отличное от нуля значение (EXIT_FAILURE) – завершение работы с индикацией ошибки.
Возвращаемое значение:
Ничего не возвращает.
Описание:
Функция _Exit (), завершает работу программы. Аргумент code указывает статус завершения работы. При завершении работы в штатном порядке рекомендуется указывать значение статуса 0 или EXIT_SUCCESS. В противном случае рекомендуется указывать отличное от нуля значение или EXIT_FAILURE.
Функция _Exit (), в отличии от функции exit (), не вызывает функции зарегистрированные функцией atexit (), не закрывает потоки данных и не удаляет временные файлы.
При вызове функции _Exit () закрываются все открытые программой файлы и каталоги, и затем завершается работа программы.
Пример:
В примере, организуется бесконечный цикл, в котором анализируются символы, вводимые в стандартный поток ввода-вывода. Как только программа встречает символ ‘e’, она завершает работу, вызывая функцию _Exit (). В качестве параметра функции указывается статус EXIT_SUCCESS, так как завершение работы штатное. При этом функция завершения работы f_MyEnd, зарегистрированная с помощью функции atexit, вызвана не будет.
#include < stdio.h > //Для puts ()
#include < stdlib.h > //Для _Exit () и atexit ()
//Декларация функций, которая будет вызвана при
//при завершении работы с помощью функции exit ()
void f_MyEnd (void);
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 (“Работа завершена”);
}
| |
Результат:
После ввода символа 'e' работа программы завершилась.
Смотри так же:
_Exit,
_exit,
abort,
atexit,
exit
|