НАЗВА

atexit - вказує функцію, яку буде виконано при нормальному завершенні програми

ОГЛЯД

#include <stdlib.h>

int atexit(void (*function)(void));

ОПИС

Функція atexit() реєструє вказану функцію для виконання під час нормального завершення програми через exit(3) або після повернення функції main() програми. Реєстровані таким чином функції буде викликано у зворотьньому щодо їхньої реєстрації порядку; щодних аргументів не передається.

Щонайменше ATEXIT_MAX функцій може бути реєстровано. Це значення, як мінімум, дорівнює 32. Його можна отримати за допомогою ?sysconf(3).

Шляхом успішного виклику однієї з exec-функцій, усі реєстрації скасовано.

ПОВЕРНЕНІ ЗНАЧЕННЯ

Функція atexit() повертає 0 при успішнім виконанні, у протилежному випадку, - ненульове значення.

ПРИКЛАД

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>

    void bye(void) {
        printf("That was all, folks\n");
    }

    int main(){
        long a;
        int i;

        a = sysconf(_SC_ATEXIT_MAX);
        printf("ATEXIT_MAX = %ld\n", a);

        i = atexit(bye);
        if (i != 0) {
            fprintf(stderr, "cannot set exit function\n");
            return EXIT_FAILURE;
        }
            return EXIT_SUCCESS;
    }

ВІДПОВІДНІСТЬ СТАНДАРТАМ

SVID 3, BSD 4.3, ISO 9899, POSIX 1003.1-2001

ДИВІТЬСЯ ТАКОЖ

exit(3), ? exit(3), ?on exit(3)