Manpages - abort.3

Table of Contents

NAME

abort - cause abnormal process termination

SYNOPSIS

  #include <stdlib.h>

  noreturn void abort(void);

DESCRIPTION

The abort*() function first unblocks the *SIGABRT signal, and then raises that signal for the calling process (as though raise*(3) was called). This results in the abnormal termination of the process unless the *SIGABRT signal is caught and the signal handler does not return (see *longjmp*(3)).

If the SIGABRT signal is ignored, or caught by a handler that returns, the abort*() function will still terminate the process. It does this by restoring the default disposition for *SIGABRT and then raising the signal for a second time.

RETURN VALUE

The *abort*() function never returns.

ATTRIBUTES

For an explanation of the terms used in this section, see *attributes*(7).

Interface Attribute Value
*abort*() Thread safety MT-Safe

CONFORMING TO

SVr4, POSIX.1-2001, POSIX.1-2008, 4.3BSD, C89, C99.

NOTES

Up until glibc 2.26, if the *abort*() function caused process termination, all open streams were closed and flushed (as with *fclose*(3)). However, in some cases this could result in deadlocks and data corruption. Therefore, starting with glibc 2.27, *abort*() terminates the process without flushing streams. POSIX.1 permits either possible behavior, saying that *abort*() “may include an attempt to effect fclose() on all open streams”.

SEE ALSO

*gdb*(1), *sigaction*(2), *assert*(3), *exit*(3), *longjmp*(3), *raise*(3)

COLOPHON

This page is part of release 5.13 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-20 Sun 14:52