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 quick_exit (C11)

La fonction qsort La fonction rand


Entête à inclure

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

Fonction quick_exit (C11)

_Noreturn void quick_exit( int returnCode );

La fonction quick_exit, introduite par le standard C ISO 2011 (C11), permet de mettre fin rapidement au programme en spécifiant un code de retour. Lors d'une sortie rapide, les tâches habituelles de finalisation du processus ne seront pas exécutées.

Ce code de retour, passé en paramètre de la fonction exit, permet de spécifier comment le programme se termine. Une valeur nulle (0 ou constanteEXIT_SUCCESS) indique au système d'exploitation que l'exécution de ce programme s'est bien déroulée. Tout autre valeur indique une sortie anormale du programme (la constante EXIT_FAILURE peut aussi être utilisée).

tant que possible préférrez une sortie normale du processus, grâce à la fonction exit, afin de garantir l'exécution de toutes les tâches de finalisation dépendantes du système : flush et fermetures des flux, suppression des fichiers temporaires, ...

Paramètres

Valeur de retour

Cette fonction ne revoit pas de valeur étant donnée que le programme est stoppé.

Exemple de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
 45 
 46 
 47 
 48 
 49 
 50 
 51 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void exitFunction1() {
    puts( "\tPremière fonction de sortie normale enregistrée" );
}

void exitFunction2() {
    puts( "\tSeconde fonction de sortie normale enregistrée" );
}


void quickExitFunction1() {
    puts( "\tPremière fonction de sortie rapide enregistrée" );
}

void quickExitFunction2() {
    puts( "\tSeconde fonction de sortie rapide enregistrée" );
}


int main() {
    // Initialisation du générateur de nombres pseudo-aléatoires
    srand( time( NULL ) );

    // Enregistrement de fonctions de rappel de sortie normale
    atexit( exitFunction1 );
    atexit( exitFunction2 );

    // Enregistrement de fonctions de rappel de sortie rapide
    at_quick_exit( quickExitFunction1 );
    at_quick_exit( quickExitFunction2 );


    // Choix d'un type de sortie (normale ou rapide).
    int exitType = rand() % 2;
    if ( exitType == 0 ) {
        puts( "Sortie normale demandée." );
        puts( "Toutes les tâches de finalisation seront exécutées :" );
        puts( "flush et fermetures des flux, suppression des fichiers temporaires, ..." );
        exit( 0 );
    } else {
        puts( "Sortie rapide demandée." );
        puts( "Aucune autres tâches de finalisation ne sera exécutée." );
        puts( "à l'exception des fonctions enregistrée avec at_quick_exit." );
        quick_exit( 0 );
    }

    return EXIT_SUCCESS;
}
Exemple d'utilisation de la fonction quick_exit

Sujets connexes

<stdlib.h>
atexit
at_quick_exit
exit
_Exit
system


La fonction qsort La fonction rand