Participer au site avec un Tip
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 abort

La librairie stdlib.h La fonction abs


Entête à inclure

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

Fonction abort

void abort( void );

La fonction abort arrête, de mainière « anormale », l'exécution du programme et déclenche le signal SIGABRT pour en informer l'appelant. Tous les flux de caractères du programme sont alors vidés et fermés.

Cette fonction est à utiliser en cas de détection d'un problème grave : si ce n'est pas le cas, préférez l'utilisation de la fonction exit qui opère une terminaison normale du programme.

la demande d'arrêt anormal du programme peut néanmoins être interceptée par le processus, en interceptant le signal SIGABRT : si le gestionnaire du signal ne rend pas la main, la sortie du processus est alors annulée.

Paramètres

Aucun paramètre n'es défini sur cette fonction.

Valeur de retour

Cette fonction ne renvoit pas de valeur de retour.

Exemple de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
#include <stdio.h>
#include <stdlib.h>

int main() {

    FILE * file = fopen( "conf.txt", "r" );
    if ( file == NULL ) {
        fputs( "L'application ne peut accéder à son fichier de configuration.\n", stderr );
        fputs( "Démarrage intérrompu !\n", stderr );
        abort();
    }

    // Do something

    fclose( file );

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

Et voici le résultat produit par cet exemple : notez la présence de la ligne Abandon (core dumped) (sous système Linux/Unix) que indique la sortie anormale du programme. Un « dump » de l'état mémoire du processus doit être produit par un système Linux/Unix.

$> gcc -o sample sample.c
$> ./sample
L'application ne peut accéder à son fichier de configuration.
Démarrage intérrompu !
Abandon (core dumped)
$>

Sujets connexes

<stdlib.h>
atexit
exit
system


La librairie stdlib.h La fonction abs