Namespaces
Variants

atexit

From cppreference.net
Défini dans l'en-tête <stdlib.h>
int atexit ( void ( * func ) ( void ) ) ;

Enregistre la fonction pointée par func pour être appelée lors de la terminaison normale du programme (via exit() ou retour depuis main() ). Les fonctions seront appelées dans l'ordre inverse de leur enregistrement, c'est-à-dire que la fonction enregistrée en dernier sera exécutée en premier.

La même fonction peut être enregistrée plus d'une fois.

L'implémentation garantit la prise en charge de l'enregistrement d'au moins 32 fonctions. La limite exacte est définie par l'implémentation.

Table des matières

Paramètres

func - pointeur vers une fonction à appeler lors de la fin normale du programme

Valeur de retour

0 si l'enregistrement réussit, valeur non nulle sinon.

Exemple

#include <stdlib.h>
#include <stdio.h>
void f1(void)
{
    puts("f1");
}
void f2(void)
{
    puts("f2");
}
int main(void)
{
    if ( ! atexit(f1) && ! atexit(f2) && ! atexit(f2) )
        return EXIT_SUCCESS ;
    // atexit registration failed
    return EXIT_FAILURE ;
}   // <- if registration was successful calls f2, f2, f1

Sortie :

f2
f2
f1

Références

  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.22.4.2 La fonction atexit (p: 255)
  • Norme C11 (ISO/IEC 9899:2011):
  • 7.22.4.2 La fonction atexit (p: 350)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.20.4.2 La fonction atexit (p: 315)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 7.10.4.2 La fonction atexit (p: 156)

Voir aussi

enregistre une fonction à appeler lors quick_exit de l'appel
(fonction)