понедельник, 3 ноября 2008 г.

Использование atexit

Использование функции atexit... Функция позволяет назначать обработчики выхода из программы. Зарегистрированные с помощью нее обработчики будут вызваны при нормальном завершении программы, а также в некоторых случаях прерывания ее работы. Это позволяет провести некоторые операции, например, сохранение данных программы, при ее завершении.
Функция atexit определена в стандартом заголовочном файле stdlib.h. Функция выглядит следующим образом:

int atexit(void (*)(void)).


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


Пример использования:


#include

#include


void exit1(){

printf("At function exit1\n");

}


void exit2(){

printf("At function exit2\n");

}


void exit3(){

printf("At function exit3\n");

}


void exit4(){

printf("At function exit4\n");

}


int main (int argc, const char * argv[]) {

    // insert code here...

    printf("Hello, World!\n");

atexit(exit1);

atexit(exit2);

atexit(exit3);

atexit(exit4);

int i=0;

for(i=0;i<100;++i)

printf(".");

    return 0;

}

В результате получается следующее:

[Session started at 2008-11-03 22:45:28 +0300.]

Hello, World!

....................................................................................................At function exit4

At function exit3

At function exit2

At function exit1


Можно зарегистрировать до 32 обработчиков. При этом они будут вызываться в обратном порядке, т.е. последний зарегистрированный обработчик будет вызываться первым.

Комментариев нет: