четверг, 6 ноября 2008 г.

Использование функции exit

Рассмотрим варианты выхода из программы.

Первый вариант - это выход при помощи вызова функции exit, которая выглядит следующим образом:
void exit(int)

В качестве параметра в функцию нужно передать код возврата, с которым закончит свою работу программа.
При вызове функции программа завершает свою работу. При этом вызываются все функции, зарегистрированные с помощью функции atexit.

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

int k=0;

void exit1(){
printf("At function exit1 %d\n",k++);
}

void exit2(){
printf("At function exit2 %d\n",k++);
}

void exit3(){
printf("At function exit3 %d\n",k++);
}

void exit4(){
printf("At function exit4 %d\n", k++);
}

Это функции - обработчики завершения программы.

typedef void (* Func_t)(void);

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

Func_t arr[4]={exit1, exit2, exit3, exit4};

int i=0;

for(i=0;i<4;++i)
atexit(arr[i]);

for(i=0;i<10;++i)
if(i==5){
printf("%d",i);
exit(0);
}
printf("End of program");
}

При запуске данного кода получаем следующий результат:

5 // Печатается счетчик цикла i
At function exit4 0 // Результат выводится последним обработчиком
At function exit3 1 // Результат выводится предпоследним обработчиком
At function exit2 2 // и т.д.
At function exit1 3

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