summaryrefslogtreecommitdiffstats
path: root/man/man3/abort.3
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/abort.3')
-rw-r--r--man/man3/abort.399
1 files changed, 99 insertions, 0 deletions
diff --git a/man/man3/abort.3 b/man/man3/abort.3
new file mode 100644
index 0000000..874ce2b
--- /dev/null
+++ b/man/man3/abort.3
@@ -0,0 +1,99 @@
+'\" t
+.\" Copyright 2007 (C) Michael Kerrisk <mtk.manpages@gmail.com>
+.\" some parts Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.\" References consulted:
+.\" Linux libc source code
+.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
+.\" 386BSD man pages
+.\" Modified Sat Jul 24 21:46:21 1993 by Rik Faith (faith@cs.unc.edu)
+.\" Modified Fri Aug 4 10:51:53 2000 - patch from Joseph S. Myers
+.\" 2007-12-15, mtk, Mostly rewritten
+.\"
+.TH abort 3 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+abort \- cause abnormal process termination
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <stdlib.h>
+.P
+.B [[noreturn]] void abort(void);
+.fi
+.SH DESCRIPTION
+The
+.BR abort ()
+function first unblocks the
+.B SIGABRT
+signal, and then raises that signal for the calling process
+(as though
+.BR raise (3)
+was called).
+This results in the abnormal termination of the process unless the
+.B SIGABRT
+signal is caught and the signal handler does not return
+(see
+.BR longjmp (3)).
+.P
+If the
+.B SIGABRT
+signal is ignored, or caught by a handler that returns, the
+.BR abort ()
+function will still terminate the process.
+It does this by restoring the default disposition for
+.B SIGABRT
+and then raising the signal for a second time.
+.P
+As with other cases of abnormal termination the functions registered with
+.BR atexit (3)
+and
+.BR on_exit (3)
+are not called.
+.SH RETURN VALUE
+The
+.BR abort ()
+function never returns.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR abort ()
+T} Thread safety MT-Safe
+.TE
+.SH STANDARDS
+C11, POSIX.1-2008.
+.SH HISTORY
+SVr4, POSIX.1-2001, 4.3BSD, C89.
+.P
+Up until glibc 2.26,
+if the
+.BR abort ()
+function caused process termination,
+all open streams were closed and flushed (as with
+.BR fclose (3)).
+However, in some cases this could result in deadlocks and data corruption.
+Therefore, starting with glibc 2.27,
+.\" glibc commit 91e7cf982d0104f0e71770f5ae8e3faf352dea9f
+.BR abort ()
+terminates the process without flushing streams.
+POSIX.1 permits either possible behavior, saying that
+.BR abort ()
+"may include an attempt to effect fclose() on all open streams".
+.SH SEE ALSO
+.BR gdb (1),
+.BR sigaction (2),
+.BR assert (3),
+.BR exit (3),
+.BR longjmp (3),
+.BR raise (3)