Função atexit

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:

void funcao(void);

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);
}