summaryrefslogtreecommitdiff
path: root/lib/libc/stdlib/atexit.c
blob: 6c84fd4ae86b4b4997d52743bebd281ff7de312d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdlib.h>

static void (*__atexit_fvec[32])(void) = { NULL };

int atexit(void (*func)(void))
{
	for (int i = 0; i < 32; i++) {
		if (__atexit_fvec[i] == NULL) {
			__atexit_fvec[i] = func;
			__atexit_fvec[i + 1] = NULL;
			return 0;
		}
	}

	return -1;
}