Sintaxe:
int atexit(void (*func)(void))
Arquivo Header: stdlib.h
Conforme definido no ANSI C, pode-se registrar até 32 funções que serão automaticamente executadas quando um processo termina. Estas funções são chamadas de exit handlers e são registradas através da chamada à função atexit
.
As funções serão chamadas na ordem inversa ao seu registro. Pode-se registrar a mesma função mais de uma vez que a mesma será chamada tantas vezes quantas registradas.
A função a ser registrada não deve esperar nenhum parâmetro bem como não é esperado que a função retorne nenhum valor devendo ser definida como:
Veja o exemplo:
/* programa atexit.c */ #include <stdio.h> #include <stdlib.h> void saindo1(void) { printf("\nFinalizando 1."); return; } void saindo2(void) { printf("\nFinalizando 2."); return; } int main(void) { printf("\nRegistrando funções.."); atexit(saindo1); atexit(saindo2); printf("\nNo meio do programa..."); exit(0); }