_onexit
, _onexit_m
Inscrit une routine à appeler au moment de la sortie.
Syntaxe
_onexit_t _onexit(
_onexit_t function
);
_onexit_t_m _onexit_m(
_onexit_t_m function
);
Paramètres
function
Pointeur désignant une fonction à appeler à la sortie.
Valeur retournée
_onexit
retourne un pointeur vers la fonction si elle réussit ou NULL
s’il n’y a pas d’espace pour stocker le pointeur de fonction.
Notes
La fonction _onexit
est transmise à l’adresse de la fonction (function
) à appeler quand le programme se termine normalement. Les appels successifs à _onexit
créent un registre des fonctions qui sont exécutées selon l’ordre du dernier entré, premier sorti (LIFO). Les fonctions passées à _onexit
ne peuvent pas prendre de paramètres.
Dans le cas où elle _onexit
est appelée à partir d’une DLL, les routines inscrites avec _onexit
l’exécution lorsque la DLL est déchargée, une fois DllMain
appelée avec DLL_PROCESS_DETACH
.
_onexit
est une extension Microsoft. Pour la portabilité ANSI, utilisez atexit
. La version _onexit_m
de la fonction est destinée à une utilisation en mode mixte.
Spécifications
Routine | En-tête requis |
---|---|
_onexit |
<stdlib.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_onexit.c
#include <stdlib.h>
#include <stdio.h>
/* Prototypes */
int fn1(void), fn2(void), fn3(void), fn4 (void);
int main( void )
{
_onexit( fn1 );
_onexit( fn2 );
_onexit( fn3 );
_onexit( fn4 );
printf( "This is executed first.\n" );
}
int fn1()
{
printf( "next.\n" );
return 0;
}
int fn2()
{
printf( "executed " );
return 0;
}
int fn3()
{
printf( "is " );
return 0;
}
int fn4()
{
printf( "This " );
return 0;
}
Sortie
This is executed first.
This is executed next.
Voir aussi
Processus et contrôle d’environnement
atexit
exit
, _Exit
, _exit
__dllonexit
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour