exit()

Завершить вызывающую программу

Прототип:

#include <stdlib.h>
void exit( int status );

Аргументы:

status
Статус выхода, который программа будет использовать. Значение может быть нулевым, EXIT_STATUS, EXIT_FAILURE или любым другим значением. Заметим, что только последние знаковые биты (например, статус и 0377) могут быть доступны для ожидающего родительского процесса.

Библиотека:

libc

Описание:

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

  1. Вызываются все функции, зарегистрированные функцией atexit().
  2. Все открытые с помощью fopen(), fdopen(), freopen() или popen() файловые потоки очищаются и закрываются.
  3. Все временные файлы, созданные с помощью функции tmpfile(), удаляются.
  4. Возвращаемый status становится доступным для родительского процесса; status обычно устанавливается в EXIT_SUCCESS как признак успешного завершения или в EXIT_FAILURE или другое значение как признак ошибки.


Note: Подробнее о процедуре завершения процесса можно почитать на странице _exit().

Возвращаемое значение:

Функция не возвращает управление.

Примеры:

#include <stdio.h>
#include <stdlib.h>
int main( int argc, char *argv[] )
{
FILE *fp;
if ( argc <= 1 )
{
fprintf( stderr, "Missing argument\n" );
exit( EXIT_FAILURE );
}
fp = fopen( argv[1], "r" );
if ( fp == NULL )
{
fprintf( stderr, "Unable to open '%s'\n", argv[1] );
exit( EXIT_FAILURE );
}
fclose( fp );
exit( EXIT_SUCCESS );
/*
* You'll never get here; this prevents compiler
* warnings about "function has no return value".
*/
return (EXIT_SUCCESS);
}

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

abort(), atexit(), _exit(), main()




Предыдущий раздел: Описание API системной библиотеки