Содержание | Глава 18

Функция atexit

#inelude <stdlib.h>
int atexit(void (*func) (void));

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

Вообще может быть зарегистрировано до 32 функций завершения, которые будут вызываться в порядке, обратном порядку регистрации (т.е. функция, зарегистрированная последней, выполнится первой).

Пример

Эта программа печатает на экране при ее завершении:

Привет здесь
#include <stdlib.h>
#include <stdio.h>

void done(void);

int main(void)
{
  if(atexit(done)) printf("Ошибка в atexit().");

  return 0;
}

void done(void)
{
  printf("Привет здесь");
}

Зависимые функции

exit() abort()
Содержание | Глава 18