Как в си завершить программу

Функция exit(), находящаяся в стандартной библиотеке, вызывает немедленное окончание работы программы. Поскольку функция exit() останавливает выполнение программы и форсирует возврат в операционную систему, она используется для управления устройствами, и ее использует подавляющее большинство программ. Функция exit() имеет следующий вид:

void exit (int статус);

Она использует заголовочный файл stdlib.h. Значение статуса возвращается в операционную систему.

Для индикации корректности завершения работы exit() традиционно вызывается с аргументом 0.

Другие аргументы используются для индикации различного рода ошибок. Можно также использовать предопределенные макросы EXIT_SUCCESS и EXIT_FAILURE в качестве значений для статуса.

exit() используется, когда условия выполнения программы неудовлетворительны. Например компьютерная игра может требовать специальный графический адаптер. Функция main() данной игры может выглядеть следующим образом:

#include
int main(void)

Как закрыть программу с помощью batch файла на windows


if (!special_adaptor()) exit(1);
play ();
return 0;
>

где special_adaptor() — это определенная пользователем функция, возвращающая истину, если необходимый адаптер присутствует. Если карта в системе отсутствует, то данная функция возвращает ложь и программа завершает работу.

В другом примере exit() используется для выхода из программы и возврата в операционную систему

void menu(void)
char ch;
printf («1. Check Spellingn»);
printf («2. Correct Spelling, Errorsn»);
printf(«3. Display Spelling Errorsn»);
printf(«4. Quitn»);
printf(» Enter your choice: «);
do ch = getchar(); /* чтение клавиатуры */
switch(ch)
case ‘1’:
check_spelling();
break;
case ‘2’:
correct_errors();
break;
case ‘3’:
display_errors ();
break;
case ‘4’:
exit(0); /* возврат в ОС*/
>
>
while(ch!=’1′ ch!=’2′ ch!=’3′);
>

Читайте также:
Как создавать программы в turbo pascal

Источник: www.c-cpp.ru

_Exit

Causes normal program termination to occur without completely cleaning the resources.

Functions passed to at_quick_exit() or atexit() are not called. Whether open streams with unwritten buffered data are flushed, open streams are closed, or temporary files are removed is implementation-defined.

If exit_code is 0 or EXIT_SUCCESS , an implementation-defined status indicating successful termination is returned to the host environment. If exit_code is EXIT_FAILURE , an implementation-defined status, indicating unsuccessful termination, is returned. In other cases an implementation-defined status value is returned.

Contents

[edit] Parameters

exit_code exit status of the program

[edit] Return value

[edit] Example

Run this code

Visual studio где exe. Как сделать exe файл в visual studio. Как скомпилировать cpp в exe. Урок #20.


#include #include /* _Exit does not call functions registered with atexit. */ void f1(void) { puts(«pushed first»); } void f2(void) { puts(«pushed second»); } int main(void) { printf(«Enter main()n»); atexit(f1); atexit(f2); fflush(stdout); /* _Exit may not flush unwritten buffered data */ _Exit(0); }
Enter main()

[edit] References

  • C17 standard (ISO/IEC 9899:2018):
  • 7.22.4.5 The _Exit function (p: 256)
  • C11 standard (ISO/IEC 9899:2011):
  • 7.22.4.5 The _Exit function (p: 352)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.20.4.4 The _Exit function (p: 316)

Источник: en.cppreference.com

Как в си завершить программу

void _Exit(int status );

ОПИСАНИЕ

_exit «немедленно» завершает работу программы. Все дескрипторы файлов, принадлежащие процессу, закрываются; все его дочерние процессы начинают управляться процессом 1 (init), а родительскому процессу посылается сигнал SIGCHLD.

Значение status возвращается родительскому процессу как статус завершаемого процесса; он может быть получен с помощью одной из функций семейства wait .

Функция _Exit эквивалентна функции _exit .

Читайте также:
Программа пуска как в 7

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

Эти функции никогда не возвращают управление вызвавшей их программе.

СООТВЕТСТВИЕ СТАНДАРТАМ

SVr4, SVID, POSIX, X/OPEN, BSD 4.3. Функция _Exit() была представлена C99.

ЗАМЕЧАНИЯ

Для рассмотрения эффектов завершения работы, передачу статуса выхода, зомби-процессов, сигналов и т.п., смотрите документацию по exit (3).

Функция _exit аналогична exit() , но не вызывает никаких функций, зарегистрированных с функцией ANSI C atexit , а также не вызывает никаких зарегистрированных обработчиков сигналов. Будет ли выполняться сброс стандартных буферов ввода-вывода и удаление временных файлов, созданных tmpfile (3), зависит от реализации. С другой стороны, _exit закрывает открытые дескрипторы файлов, а это может привести к неопределенной задержке для завершения вывода данных. Если задержка нежелательна, то может быть полезным перед вызовом _exit() вызывать функции типа tcflush() . Будет ли завершен ввод-вывод, а также какие именно операции ввода-вывода будут завершены при вызове _exit() , зависит от реализации.

Источник: www.opennet.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru