Namespaces
Variants

Error handling

From cppreference.net
< c

Table des matières

Numéros d'erreur

Défini dans l'en-tête <errno.h>
macro qui s'étend à une variable de numéro d'erreur thread-local compatible POSIX
(macro variable)
macros pour les conditions d'erreur standard compatibles POSIX
(macro constante)

Assertions

Défini dans l'en-tête <assert.h>
interrompt le programme si la condition spécifiée par l'utilisateur n'est pas true . Peut être désactivé pour les versions de production
(macro fonction)
(C11) (supprimé en C23)
émet un diagnostic à la compilation si la valeur d'une expression constante est fausse
(macro mot-clé)

Vérification des limites

La bibliothèque standard fournit des versions avec vérification des limites de certaines fonctions existantes ( gets_s , fopen_s , printf_s , strcpy_s , wcscpy_s , mbstowcs_s , qsort_s , getenv_s , etc). Cette fonctionnalité est optionnelle et n'est disponible que si __STDC_LIB_EXT1__ est défini. Les macros et fonctions suivantes prennent en charge cette fonctionnalité.

Défini dans l'en-tête <errno.h>
Défini dans l'en-tête <stdio.h>
errno_t
(C11)
un typedef pour le type int , utilisé pour auto-documenter les fonctions qui renvoient des valeurs errno
(typedef)
Défini dans l'en-tête <stddef.h>
Défini dans l'en-tête <stdio.h>
Défini dans l'en-tête <stdlib.h>
Défini dans l'en-tête <string.h>
Défini dans l'en-tête <time.h>
Défini dans l'en-tête <wchar.h>
rsize_t
(C11)
un typedef pour le même type que size_t , utilisé pour auto-documenter les fonctions qui vérifient la plage de leurs paramètres à l'exécution
(typedef)
Défini dans l'en-tête <stdint.h>
RSIZE_MAX
(C11)
taille maximale acceptable pour les fonctions avec vérification des limites, se développe en constante ou variable pouvant changer à l'exécution (par exemple lorsque la taille de mémoire actuellement allouée change)
(macro variable)
Défini dans l'en-tête <stdlib.h>
définit la fonction de rappel d'erreur pour les fonctions avec vérification des limites
(fonction)
fonction de rappel d'abandon pour les fonctions avec vérification des limites
(fonction)
fonction de rappel d'ignorance pour les fonctions avec vérification des limites
(fonction)

Note : les implémentations des fonctions avec vérification des limites sont disponibles sous forme de bibliothèques open-source Safe C et Slibc , et font partie de Watcom C. Il existe également un ensemble incompatible de fonctions avec vérification des limites disponible dans Visual Studio.

(depuis C11)

Notes

Depuis C23, static_assert est lui-même un mot-clé, qui peut également être une macro prédéfinie, donc <assert.h> ne le fournit plus.

Références

Contenu étendu
  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.2 Diagnostics <assert.h> (p: TBD)
  • 7.5 Errors <errno.h> (p: TBD)
  • 7.19 Common definitions <stddef.h> (p: TBD)
  • 7.20 Integer types <stdint.h> (p: TBD)
  • 7.21 Input/output <stdio.h> (p: TBD)
  • 7.22 General utilities <stdlib.h> (p: TBD)
  • K.3.1.3 Use of errno (p: TBD)
  • K.3.2/2 errno_t (p: TBD)
  • K.3.3/2 rsize_t (p: TBD)
  • K.3.4/2 RSIZE_MAX (p: TBD)
  • 7.31.3 Errors <errno.h> (p: TBD)
  • 7.31.10 Integer types <stdint.h> (p: TBD)
  • 7.31.11 Input/output <stdio.h> (p: TBD)
  • 7.31.12 General utilities <stdlib.h> (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.2 Diagnostics <assert.h> (p: TBD)
  • 7.5 Errors <errno.h> (p: TBD)
  • 7.19 Common definitions <stddef.h> (p: TBD)
  • 7.20 Integer types <stdint.h> (p: TBD)
  • 7.21 Input/output <stdio.h> (p: TBD)
  • 7.22 General utilities <stdlib.h> (p: TBD)
  • K.3.1.3 Use of errno (p: TBD)
  • K.3.2/2 errno_t (p: TBD)
  • K.3.3/2 rsize_t (p: TBD)
  • K.3.4/2 RSIZE_MAX (p: TBD)
  • 7.31.3 Errors <errno.h> (p: TBD)
  • 7.31.10 Integer types <stdint.h> (p: TBD)
  • 7.31.11 Input/output <stdio.h> (p: TBD)
  • 7.31.12 General utilities <stdlib.h> (p: TBD)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.2 Diagnostics <assert.h> (p: 186-187)
  • 7.5 Errors <errno.h> (p: 205)
  • 7.19 Common definitions <stddef.h> (p: 288)
  • 7.20 Integer types <stdint.h> (p: 289-295)
  • 7.21 Input/output <stdio.h> (p: 296-339)
  • 7.22 General utilities <stdlib.h> (p: 340-360)
  • K.3.1.3 Use of errno (p: 584)
  • K.3.2/2 errno_t (p: 585)
  • K.3.3/2 rsize_t (p: 585)
  • K.3.4/2 RSIZE_MAX (p: 585)
  • 7.31.3 Errors <errno.h> (p: 455)
  • 7.31.10 Integer types <stdint.h> (p: 456)
  • 7.31.11 Input/output <stdio.h> (p: 456)
  • 7.31.12 General utilities <stdlib.h> (p: 456)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.2 Diagnostics <assert.h> (p: 169)
  • 7.5 Errors <errno.h> (p: 186)
  • 7.26.3 Errors <errno.h> (p: 401)
  • 7.26.8 Integer types <stdint.h> (p: 401)
  • 7.26.9 Input/output <stdio.h> (p: 402)
  • 7.26.10 General utilities <stdlib.h> (p: 402)
  • Norme C89/C90 (ISO/CEI 9899:1990) :
  • 4.2 DIAGNOSTICS <assert.h>
  • 4.1.3 Errors <errno.h>
  • 4.13.1 Errors <errno.h>
  • 4.13.6 Input/output <stdio.h>
  • 4.13.7 General utilities <stdlib.h>

Voir aussi

définit le mécanisme de gestion d'erreur utilisé par les fonctions mathématiques communes
(constante macro)
Documentation C++ pour Gestion des erreurs