Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Fonction atexit

La fonction aligned_alloc La fonction atof


Entête à inclure

#include <stdlib.h>  // <cstdlib> en C++

Fonction atexit

int atexit( void ( * function ) (void) );

Permet d'ajouter une fonction qui sera exécutée en sortie de la fonction main ou de la sortie du processus (du programme) via un appel à la fonction exit.

si un signal est reçu par le processus (et notamment en cas de réception d'un signal SIGTERM), les fonctions enregistrées via atexit ne seront pas invoquées. Si vous souhaitez changer ce comportement, il sera nécessaire d'intercepter le signal (via la fonction signal) pour forcer un appel explicit à exit.
il est possible d'utiliser cette fonction plusieurs fois, et donc d'enregistrer plusieurs functions à exécuter en sortie du processus. Dans ce cas, les fonctions seront invoquées dans l'ordre inverse ou elles ont été enregistrées.

Paramètres

Valeur de retour

La valeur 0 est revoyée si la fonction est correctement ajoutée. Une valeur non nulle est renvoyée dans le cas inverse.

Exemple de code

#include <stdio.h>          
#include <stdlib.h>
#include <assert.h>

void firstFunction() {
    printf( "firstFunction\n" );
}

void secondFunction() {
    printf( "secondFunction\n" );
}

int main() {
    
    int cr = atexit( firstFunction );
    assert( cr == 0 );

    cr = atexit( secondFunction );
    assert( cr == 0 );
    
    printf( "main finished\n" );

    /* Results are :
        main finished
        secondFunction
        firstFunction
    */

    return 0;
}

Sujets connexes

signal
abort
at_quick_exit
exit
_Exit
quick_exit


La fonction aligned_alloc La fonction atof