Error handling
Error numbers
Defined in header
<errno.h>
|
|
macro which expands to POSIX-compatible thread-local error number variable
(macro variable) |
|
macros for standard POSIX-compatible error conditions
(macro constant) |
Assertions
Defined in header
<assert.h>
|
|
aborts the program if the user-specified condition is not
true
. May be disabled for release builds
(function macro) |
|
(C11)
(removed in C23)
|
issues a compile-time diagnostic if the value of a constant expression is false
(keyword macro) |
Bounds checkingThe standard library provides bounds-checked versions of some existing functions ( gets_s , fopen_s , printf_s , strcpy_s , wcscpy_s , mbstowcs_s , qsort_s , getenv_s , etc). This functionality is optional and is only available if __STDC_LIB_EXT1__ is defined. The following macros and functions support this functionality.
Note: implementations of bounds-checked functions are available as open-source libraries Safe C and Slibc , and as part of Watcom C. There is also an incompatible set of bounds-checked functions available in Visual Studio. |
(since C11) |
Notes
Since C23,
static_assert
is itself a keyword, which may also be a predefined macro, so
<assert.h>
no longer provides it.
References
- C11 standard (ISO/IEC 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)
- C99 standard (ISO/IEC 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)
- C89/C90 standard (ISO/IEC 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>
See also
(C99)
(C99)
(C99)
|
defines the error handling mechanism used by the common mathematical functions
(macro constant) |
C++ documentation
for
Error handling
|