NAME¶
abort2
—
abort process with diagnostics
LIBRARY¶
Standard C Library (libc, -lc)
SYNOPSIS¶
#include
<stdlib.h>
void
abort2
(
const
char *why,
int
nargs,
void
**args);
DESCRIPTION¶
The
abort2
() system call causes the process
to be killed and the specified diagnostic message (with arguments) to be
delivered by the kernel to the
syslogd(8) daemon.
The
why argument points to a
NUL-
terminated string specifying a reason
of the program's termination (maximum 128 characters long). The
args array contains pointers which will be
logged numerically (with the kernel's
‘
%p
’
printf(9) format). The
nargs argument specifies the number of
pointers in
args (maximum 16).
The
abort2
() system call is intended for use
in situations where continuation of a process is impossible or for other
definitive reasons is unwanted, and normal diagnostic channels cannot be
trusted to deliver the message.
RETURN VALUES¶
The
abort2
() function never returns.
The process is killed with
SIGABRT
unless the
arguments to
abort2
() are invalid, in which
case
SIGKILL
is used.
EXAMPLES¶
#include <stdlib.h>
if (weight_kg > max_load) {
void *ptrs[3];
ptrs[0] = (void *)(intptr_t)weight_kg;
ptrs[1] = (void *)(intptr_t)max_load;
ptrs[2] = haystack;
abort2("Camel overloaded", 3, ptrs);
}
SEE ALSO¶
abort(3),
exit(3)
HISTORY¶
The
abort2
() system call first appeared in
FreeBSD 7.0.
AUTHORS¶
The
abort2
() system call was designed by
Poul-Henning Kamp
⟨phk@FreeBSD.org⟩. It was implemented by
Wojciech A. Koszek
⟨dunstan@freebsd.czest.pl⟩.