set_constraint_handler_s
,
abort_handler_s
,
ignore_handler_s
—
runtime-constraint handling
Standard C Library (libc, -lc)
#define __STDC_WANT_LIB_EXT1__ 1
#include
<stdlib.h>
constraint_handler_t
set_constraint_handler_s
(
constraint_handler_t
handler);
void
abort_handler_s
(
const
char *restrict msg,
void *restrict ptr,
errno_t error);
void
ignore_handler_s
(
const
char *restrict msg,
void *restrict ptr,
errno_t error);
The
set_constraint_handler_s
() function sets
the runtime-constraint handler to be
handler.
The runtime-constraint handler is the callback function invoked when a library
function detects a runtime-constraint violation, having the following
prototype:
void (*constraint_handler_t)(const char *restrict msg,
void *restrict ptr, errno_t error);
The arguments are as follows:
-
-
- msg
- A pointer to a character string describing the runtime-constraint
violation.
-
-
- ptr
- A
NULL
pointer.
-
-
- error
- If the function calling the handler has a return type declared as
errno_t, the return value of the function
is passed. Otherwise, a positive value of type
errno_t is passed.
Only the most recent handler registered with
set_constraint_handler_s
() is called when a
runtime-constraint violation occurs.
The implementation has a default constraint handler that is used if no calls to
the
set_constraint_handler_s
() function
have been made. If the
handler argument to
set_constraint_handler_s
() is a
NULL
pointer, the default handler becomes
the current constraint handler.
The
abort_handler_s
() and
ignore_handler_s
() are the standard-defined
runtime-constraint handlers provided by the C library.
The
abort_handler_s
() function writes the
error message including the
msg to
stderr
and calls the
abort(3C) function. The
abort_handler_s
() is currently the default
runtime-constraint handler.
The
ignore_handler_s
() simply returns to its
caller.
The
set_constraint_handler_s
() function
returns a pointer to the previously registered handler, or
NULL
if none was previously registered.
The
abort_handler_s
() function does not
return to its caller.
The
ignore_handler_s
() function returns no
value.
Standard
Safe
The
set_constraint_handler_s
() function
conforms to
ISO/IEC 9899:2011
(“ISO C11”).