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

void handler1(void);
void handler2(void);

int
main(int argc, char *argv[])
{
    atexit(handler2);
    atexit(handler1);

    exit(EXIT_SUCCESS);
}

void
handler1(void)
{
    printf("exit handler 1\n");
    _exit(EXIT_SUCCESS);        // call _exit() system call
                                // inside an exit handler
                                // terminates the process
}

void
handler2(void)
{
    printf("exit handler 2\n");
}
