abort.3p (4407B)
- '\" et
- .TH ABORT "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
- .\"
- .SH PROLOG
- This manual page is part of the POSIX Programmer's Manual.
- The Linux implementation of this interface may differ (consult
- the corresponding Linux manual page for details of Linux behavior),
- or the interface may not be implemented on Linux.
- .\"
- .SH NAME
- abort
- \(em generate an abnormal process abort
- .SH SYNOPSIS
- .LP
- .nf
- #include <stdlib.h>
- .P
- void abort(void);
- .fi
- .SH DESCRIPTION
- The functionality described on this reference page is aligned with the
- ISO\ C standard. Any conflict between the requirements described here and the
- ISO\ C standard is unintentional. This volume of POSIX.1\(hy2017 defers to the ISO\ C standard.
- .P
- The
- \fIabort\fR()
- function shall cause abnormal process termination to occur, unless the
- signal SIGABRT is being caught and the signal handler does not return.
- .P
- The abnormal termination processing shall include the default actions
- defined for SIGABRT and may include an attempt to effect
- \fIfclose\fR()
- on all open streams.
- .P
- The SIGABRT signal shall be sent to the calling process as if by means
- of
- \fIraise\fR()
- with the argument SIGABRT.
- .P
- The status made available to
- \fIwait\fR(),
- \fIwaitid\fR(),
- or
- \fIwaitpid\fR()
- by
- \fIabort\fR()
- shall be that of a process terminated by the SIGABRT signal.
- The
- \fIabort\fR()
- function shall override blocking or ignoring the SIGABRT signal.
- .SH "RETURN VALUE"
- The
- \fIabort\fR()
- function shall not return.
- .SH ERRORS
- No errors are defined.
- .LP
- .IR "The following sections are informative."
- .SH EXAMPLES
- None.
- .SH "APPLICATION USAGE"
- Catching the signal is intended to provide the application developer with
- a portable means to abort processing, free from possible interference
- from any implementation-supplied functions.
- .SH RATIONALE
- The ISO/IEC\ 9899:\|1999 standard requires the
- \fIabort\fR()
- function to be async-signal-safe. Since POSIX.1\(hy2008 defers to the ISO\ C standard,
- this required a change to the DESCRIPTION from ``shall include the
- effect of
- \fIfclose\fR()''
- to ``may include an attempt to effect
- \fIfclose\fR().''
- .P
- The revised wording permits some backwards-compatibility and avoids a
- potential deadlock situation.
- .P
- The Open Group Base Resolution bwg2002\(hy003 is applied, removing the
- following XSI shaded paragraph from the DESCRIPTION:
- .P
- ``On XSI-conformant systems, in addition the abnormal termination
- processing shall include the effect of
- \fIfclose\fR()
- on message catalog descriptors.''
- .P
- There were several reasons to remove this paragraph:
- .IP " *" 4
- No special processing of open message catalogs needs to be performed
- prior to abnormal process termination.
- .IP " *" 4
- The main reason to specifically mention that
- \fIabort\fR()
- includes the effect of
- \fIfclose\fR()
- on open streams is to flush output queued on the stream. Message
- catalogs in this context are read-only and, therefore, do not need to
- be flushed.
- .IP " *" 4
- The effect of
- \fIfclose\fR()
- on a message catalog descriptor is unspecified. Message catalog
- descriptors are allowed, but not required to be implemented using a
- file descriptor, but there is no mention in POSIX.1\(hy2008 of a message catalog
- descriptor using a standard I/O stream FILE object as would be expected
- by
- \fIfclose\fR().
- .SH "FUTURE DIRECTIONS"
- None.
- .SH "SEE ALSO"
- .IR "\fIexit\fR\^(\|)",
- .IR "\fIkill\fR\^(\|)",
- .IR "\fIraise\fR\^(\|)",
- .IR "\fIsignal\fR\^(\|)",
- .IR "\fIwait\fR\^(\|)",
- .IR "\fIwaitid\fR\^(\|)"
- .P
- The Base Definitions volume of POSIX.1\(hy2017,
- .IR "\fB<stdlib.h>\fP"
- .\"
- .SH COPYRIGHT
- Portions of this text are reprinted and reproduced in electronic form
- from IEEE Std 1003.1-2017, Standard for Information Technology
- -- Portable Operating System Interface (POSIX), The Open Group Base
- Specifications Issue 7, 2018 Edition,
- Copyright (C) 2018 by the Institute of
- Electrical and Electronics Engineers, Inc and The Open Group.
- In the event of any discrepancy between this version and the original IEEE and
- The Open Group Standard, the original IEEE and The Open Group Standard
- is the referee document. The original Standard can be obtained online at
- http://www.opengroup.org/unix/online.html .
- .PP
- Any typographical or formatting errors that appear
- in this page are most likely
- to have been introduced during the conversion of the source files to
- man page format. To report such errors, see
- https://www.kernel.org/doc/man-pages/reporting_bugs.html .