Namespaces
Variants

Error handling

From cppreference.net
< c

Inhaltsverzeichnis

Fehlernummern

Definiert im Header <errno.h>
Makro, das zu einer POSIX-kompatiblen thread-lokalen Fehlernummer-Variable expandiert
(Makro-Variable)
Makros für standard POSIX-kompatible Fehlerzustände
(Makro-Konstante)

Assertions

Definiert im Header <assert.h>
bricht das Programm ab, wenn die benutzerdefinierte Bedingung nicht true ist. Kann für Release-Builds deaktiviert werden
(Funktionsmakro)
(C11) (entfernt in C23)
gibt eine Compilezeit-Diagnose aus, wenn der Wert eines konstanten Ausdrucks falsch ist
(Schlüsselwortmakro)

Grenzprüfung

Die Standardbibliothek stellt grenzprüfende Versionen einiger bestehender Funktionen bereit ( gets_s , fopen_s , printf_s , strcpy_s , wcscpy_s , mbstowcs_s , qsort_s , getenv_s , etc.). Diese Funktionalität ist optional und nur verfügbar, wenn __STDC_LIB_EXT1__ definiert ist. Die folgenden Makros und Funktionen unterstützen diese Funktionalität.

Definiert im Header <errno.h>
Definiert im Header <stdio.h>
errno_t
(C11)
ein Typedef für den Typ int , verwendet um Funktionen zu dokumentieren, die errno -Werte zurückgeben
(typedef)
Definiert im Header <stddef.h>
Definiert im Header <stdio.h>
Definiert im Header <stdlib.h>
Definiert im Header <string.h>
Definiert im Header <time.h>
Definiert im Header <wchar.h>
rsize_t
(C11)
ein Typedef für denselben Typ wie size_t , verwendet um Funktionen zu dokumentieren, die ihre Parameter zur Laufzeit auf Gültigkeit prüfen
(typedef)
Definiert im Header <stdint.h>
RSIZE_MAX
(C11)
größte akzeptable Größe für grenzprüfende Funktionen, expandiert entweder zu einer Konstante oder Variable, die sich zur Laufzeit ändern kann (z.B. wenn sich die aktuell allokierte Speichergröße ändert)
(Makrovariable)
Definiert im Header <stdlib.h>
setzt den Fehler-Callback für grenzprüfende Funktionen
(Funktion)
Abbruch-Callback für grenzprüfende Funktionen
(Funktion)
Ignorieren-Callback für grenzprüfende Funktionen
(Funktion)

Hinweis: Implementierungen grenzprüfender Funktionen sind als Open-Source-Bibliotheken verfügbar: Safe C und Slibc , sowie als Teil von Watcom C. Es gibt auch einen inkompatiblen Satz grenzprüfender Funktionen in Visual Studio.

(seit C11)

Hinweise

Seit C23 ist static_assert selbst ein Schlüsselwort, das auch ein vordefinierter Makro sein kann, daher stellt <assert.h> es nicht mehr bereit.

Referenzen

Erweiterter Inhalt
  • C23-Standard (ISO/IEC 9899:2024):
  • 7.2 Diagnose <assert.h> (S: TBD)
  • 7.5 Fehler <errno.h> (S: TBD)
  • 7.19 Allgemeine Definitionen <stddef.h> (S: TBD)
  • 7.20 Ganzzahltypen <stdint.h> (S: TBD)
  • 7.21 Ein-/Ausgabe <stdio.h> (S: TBD)
  • 7.22 Allgemeine Hilfsfunktionen <stdlib.h> (S: TBD)
  • K.3.1.3 Verwendung von errno (S: TBD)
  • K.3.2/2 errno_t (S: TBD)
  • K.3.3/2 rsize_t (S: TBD)
  • K.3.4/2 RSIZE_MAX (S: TBD)
  • 7.31.3 Fehler <errno.h> (S: TBD)
  • 7.31.10 Ganzzahltypen <stdint.h> (S: TBD)
  • 7.31.11 Ein-/Ausgabe <stdio.h> (S: TBD)
  • 7.31.12 Allgemeine Hilfsfunktionen <stdlib.h> (S: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.2 Diagnose <assert.h> (S: TBD)
  • 7.5 Fehler <errno.h> (S: TBD)
  • 7.19 Allgemeine Definitionen <stddef.h> (S: TBD)
  • 7.20 Ganzzahltypen <stdint.h> (S: TBD)
  • 7.21 Ein-/Ausgabe <stdio.h> (S: TBD)
  • 7.22 Allgemeine Hilfsfunktionen <stdlib.h> (S: TBD)
  • K.3.1.3 Verwendung von errno (S: TBD)
  • K.3.2/2 errno_t (S: TBD)
  • K.3.3/2 rsize_t (S: TBD)
  • K.3.4/2 RSIZE_MAX (S: TBD)
  • 7.31.3 Fehler <errno.h> (S: TBD)
  • 7.31.10 Ganzzahltypen <stdint.h> (S: TBD)
  • 7.31.11 Ein-/Ausgabe <stdio.h> (S: TBD)
  • 7.31.12 Allgemeine Hilfsfunktionen <stdlib.h> (S: TBD)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.2 Diagnose <assert.h> (S: 186-187)
  • 7.5 Fehler <errno.h> (S: 205)
  • 7.19 Allgemeine Definitionen <stddef.h> (S: 288)
  • 7.20 Ganzzahltypen <stdint.h> (S: 289-295)
  • 7.21 Ein-/Ausgabe <stdio.h> (S: 296-339)
  • 7.22 Allgemeine Hilfsfunktionen <stdlib.h> (S: 340-360)
  • K.3.1.3 Verwendung von errno (S: 584)
  • K.3.2/2 errno_t (S: 585)
  • K.3.3/2 rsize_t (S: 585)
  • K.3.4/2 RSIZE_MAX (S: 585)
  • 7.31.3 Fehler <errno.h> (S: 455)
  • 7.31.10 Ganzzahltypen <stdint.h> (S: 456)
  • 7.31.11 Ein-/Ausgabe <stdio.h> (S: 456)
  • 7.31.12 Allgemeine Hilfsfunktionen <stdlib.h> (S: 456)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.2 Diagnose <assert.h> (S: 169)
  • 7.5 Fehler <errno.h> (S: 186)
  • 7.26.3 Fehler <errno.h> (S: 401)
  • 7.26.8 Ganzzahltypen <stdint.h> (S: 401)
  • 7.26.9 Ein-/Ausgabe <stdio.h> (S: 402)
  • 7.26.10 Allgemeine Hilfsfunktionen <stdlib.h> (S: 402)
  • C89/C90-Standard (ISO/IEC 9899:1990):
  • 4.2 DIAGNOSE <assert.h>
  • 4.1.3 Fehler <errno.h>
  • 4.13.1 Fehler <errno.h>
  • 4.13.6 Ein-/Ausgabe <stdio.h>
  • 4.13.7 Allgemeine Hilfsfunktionen <stdlib.h>

Siehe auch

definiert den Fehlerbehandlungsmechanismus, der von den allgemeinen mathematischen Funktionen verwendet wird
(Makrokonstante)
C++ documentation für Fehlerbehandlung