Namespaces
Variants

exit

From cppreference.net
Défini dans l'en-tête <stdlib.h>
void exit ( int exit_code ) ;
(jusqu'à C11)
_Noreturn void exit ( int exit_code ) ;
(depuis C11)
(jusqu'à C23)
[ [ noreturn ] ] void exit ( int exit_code ) ;
(depuis C23)

Provoque la terminaison normale du programme.

Plusieurs étapes de nettoyage sont effectuées :

  • les fonctions passées à atexit sont appelées, dans l'ordre inverse de leur enregistrement
  • tous les flux C sont vidés et fermés
  • les fichiers créés par tmpfile sont supprimés
  • le contrôle est retourné à l'environnement hôte. Si exit_code est zéro ou EXIT_SUCCESS , un statut défini par l'implémentation indiquant une terminaison réussie est retourné. Si exit_code est EXIT_FAILURE , un statut défini par l'implémentation indiquant une terminaison échouée est retourné. Dans les autres cas, une valeur de statut définie par l'implémentation est retournée.

Table des matières

Notes

Les fonctions enregistrées avec at_quick_exit ne sont pas appelées.

Le comportement n'est pas défini si un programme appelle exit plus d'une fois, ou s'il appelle exit et quick_exit

Le comportement est indéfini si, lors d'un appel à une fonction enregistrée avec atexit , la fonction se termine avec longjmp .

Le retour de la fonction main , soit par une instruction return soit en atteignant la fin de la fonction, exécute exit() , en passant l'argument de l'instruction return (ou 0 si un retour implicite était utilisé) comme exit_code .

Paramètres

exit_code - statut de sortie du programme

Valeur de retour

(aucun)

Exemple

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE *fp = fopen("data.txt","r");
    if (fp == NULL)
    {
       fprintf(stderr, "error opening file data.txt in function main()\n");
       exit( EXIT_FAILURE );
    }
    fclose(fp);
    printf("Normal Return\n");
    return EXIT_SUCCESS ;
}

Sortie possible :

error opening file data.txt in function main()

Références

  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.22.4.4 La fonction exit (p: 256)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.22.4.4 La fonction exit (p: 351-352)
  • Norme C99 (ISO/IEC 9899:1999) :
  • 7.20.4.3 La fonction exit (p: 315-316)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 4.10.4.3 La fonction exit

Voir aussi

provoque la terminaison anormale du programme (sans nettoyage)
(fonction)
enregistre une fonction à appeler lors de l'invocation de exit()
(fonction)
provoque la terminaison normale du programme sans nettoyage complet
(fonction)