Files
oldlinux-files/study/linux-travel/minix-386/estdio21.tar/estdio21/atexit.c
2024-02-19 00:25:23 -05:00

34 lines
707 B
C

/* a t e x i t */
#include "stdiolib.h"
/*LINTLIBRARY*/
#define MAX_HANDLERS 32 /* maximum number of handlers */
/* Exit handler list */
static atexit_t __exithandlers[MAX_HANDLERS] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
/* Exit handler list pointer */
static atexit_t *__exitpointer = &__exithandlers[0];
static void doexit F0()
{
for ( ; __exitpointer > &__exithandlers[0]; )
(*(*--__exitpointer))();
}
int atexit F1(atexit_t, fn)
{
__Zatexit = doexit;
return (__exitpointer < &__exithandlers[MAX_HANDLERS])
? (*__exitpointer++ = fn, 0)
: -1;
}