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

void atexit1(void);
void atexit2(void);
void on_exit1(int status, void *arg);

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

    a = 25;
    atexit(atexit2);
    on_exit(on_exit1, &a);
    atexit(atexit1);
    exit(EXIT_SUCCESS);
}

void
atexit1(void)
{
    printf("atexit1\n");
}

void
atexit2(void)
{
    printf("atexit2\n");
}

void
on_exit1(int status, void *arg)
{
    int *a = arg;
    printf("on_exit1 status=%d arg=%d\n", status, *a);
}
