Namespaces
Variants

at_quick_exit

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

Enregistre la fonction pointée par func pour être appelée lors de la terminaison rapide du programme (via quick_exit ).

L'appel de la fonction depuis plusieurs threads n'induit pas de course aux données. 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.

Les fonctions enregistrées ne seront pas appelées lors d'une terminaison normale du programme . Si une fonction doit être appelée dans ce cas, atexit doit être utilisé.

Table des matières

Paramètres

func - pointeur vers une fonction à appeler lors de la fin rapide 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("pushed first");
    fflush(stdout);
}
void f2(void)
{
    puts("pushed second");
}
int main(void)
{
    at_quick_exit(f1);
    at_quick_exit(f2);
    quick_exit(0);
}

Sortie :

pushed second
pushed first

Références

  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.22.4.3 La fonction at_quick_exit (p : 255)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.22.4.3 La fonction at_quick_exit (p: 351)

Voir aussi

provoque la terminaison anormale du programme (sans nettoyage)
(fonction)
provoque la terminaison normale du programme avec nettoyage
(fonction)
enregistre une fonction à appeler lors de l'invocation de exit()
(fonction)
provoque la terminaison normale du programme sans nettoyage complet
(fonction)
Documentation C++ pour at_quick_exit