Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Использование 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 обработчиков. При этом они будут вызываться в обратном порядке, т.е. последний зарегистрированный обработчик будет вызываться первым.

a silhouette of a person's head and shoulders, used as a default avatar

О блоге...

Данный блог посвящен программированию на языке С. В нем я буду приводить примеры использования стандартного С (с99), а также рассматривать некоторые интересные моменты...

a silhouette of a person's head and shoulders, used as a default avatar

11 не зачёт

Сообственно уже с неделю работаю на 11 версии OpenSuse. + Быстро поставилось Yast не жрёт много оперативы Zypper работает реально быстрее — КДЕ 4 ещё сырой Много багов, приходиться обновляться раз в 3 дня wxPythona нет! Ужас

a silhouette of a person's head and shoulders, used as a default avatar

Переход

Вышла новая версия моего дистрибутива Linux. OpenSUSE 11.0 Здесь все преимущества! Так же в дистр включена KDE 4.0! Я напишу все результаты!

a silhouette of a person's head and shoulders, used as a default avatar

polishlinux

Интересный тестик нашёл для выбора Linux дистрибутива. http://polishlinux.org/choose/quiz/ Вопросы наиболее адекватные для пользователя Linux. Мне посоветовали юзать 1)Fedora 2)Debian 3)OpenSuse. Сейчас использую OpenSuse (Он так отстал, потому что я указал быстродействие наиболее важным параметром :-)) Проидите тест, напишите результаты в комментах. И фактическое использование, интересно сравнить насколько кореллируют? Кстати, завтра уезжаю в профилакторий университета, где […]

a silhouette of a person's head and shoulders, used as a default avatar

Linux кеш пакетов

Забавно, но OpenSuse локально не хранит скаченные пакеты. Таким образом необходимо создавть локальные копии необходимого ПО самому. Что не особо удобно чессно слово! Разрешать зависимости и.т.п.