Функция atexit

Прототип функции atexit:

int atexit( void ( * funcptr ) (void) );

Заголовочный файл

Название Язык
stdlib.h С
cstdlib С++

Описание

Функция atexit при завершении работы программы передает управление другой функции, которая будет выполняться на выходе.
Функция, на которую указывает аргумент *funcprt вызывается, в случае успешного завершения программы.

Если функция atexit была вызвана более одного раза, то порядок выполнения функций, передаваемых в качестве аргумента, будет обратным. Такой принцип работы функции основан на работе стека, т.е. последняя вызванная функция будет выполняться первой.

Одна единственная функция может быть зарегистрирована на выполнение более одного раза, после завершения работы программы.

Название

Реализация С++ должна поддерживать регистрацию по меньшей мере 32 atexit функций.

Параметры:

  • funcptr
    Функция, которую необходимо вызвать, по завершении программы. Больше, функция не должна принимать никаких аргументов.

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

Нулевое значение возвращается, если функция была успешно зарегистрирована, или ненулевое значение, если не удалось её зарегистрировать.

Пример: исходный код программы

//пример использования функции atexit
#include <iostream>
#include <cstdio>
#include <cstdlib>

void funcExit1(void)
{
  std::cout << "Выход функции 1n";
}

void funcExit2(void)
{
    std::cout << "Выход функции 2n";
}

int main()
{
  atexit(funcExit1);                         // при выходе из программы, запустить функцию funcexit1
  atexit(funcExit2);                         // при выходе из программы, запустить функцию funcexit2
  std::cout << "завершение main функцииn";
  return 0;
}

Пример работы программы

CppStudio.com
завершение main функции
Выход функции 2
Выход функции 1
Автор: admin
Дата: 03.09.2012
Поделиться:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.