Man Linux: Main Page and Category List

NAME

       abort - generate an abnormal process abort

SYNOPSIS

       #include <stdlib.h>

       void abort(void);

DESCRIPTION

       The abort() function shall cause abnormal process termination to occur,
       unless the signal SIGABRT is being caught and the signal  handler  does
       not return.

       The  abnormal  termination processing shall include the default actions
       defined for SIGABRT and may include an attempt to  effect  fclose()  on
       all open streams.

       The  SIGABRT signal shall be sent to the calling process as if by means
       of raise() with the argument SIGABRT.

       The status made available to wait() or waitpid() by  abort()  shall  be
       that  of  a  process  terminated  by  the  SIGABRT signal.  The abort()
       function shall override blocking or ignoring the SIGABRT signal.

RETURN VALUE

       The abort() function shall not return.

ERRORS

       No errors are defined.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       Catching the signal is intended to provide the application writer  with
       a  portable  means to abort processing, free from possible interference
       from any implementation-defined functions.

RATIONALE

       The ISO/IEC 9899:1999 standard requires  the  abort()  function  to  be
       async-signal-safe.  Since  IEEE Std 1003.1-2001  defers  to  the  ISO C
       standard, this required  a  change  to  the  DESCRIPTION  from  ‘‘shall
       include  the effect of fclose()’’ to ‘‘may include an attempt to effect
       fclose().’’

       The revised wording permits some backwards-compatibility and  avoids  a
       potential deadlock situation.

       The  Open  Group  Base  Resolution bwg2002-003 is applied, removing the
       following XSI shaded paragraph from the DESCRIPTION:

       ‘‘On XSI-conformant  systems,  in  addition  the  abnormal  termination
       processing  shall  include  the  effect  of fclose() on message catalog
       descriptors.’’

       There were several reasons to remove this paragraph:

        * No special processing of open message catalogs needs to be performed
          prior to abnormal process termination.

        * The  main  reason  to specifically mention that abort() includes the
          effect of fclose() 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.

        * The  effect  of  fclose()  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  IEEE Std 1003.1-2001  of  a  message catalog descriptor
          using a standard I/O stream FILE object  as  would  be  expected  by
          fclose().

FUTURE DIRECTIONS

       None.

SEE ALSO

       exit()  ,  kill()  , raise() , signal() , wait() , waitpid() , the Base
       Definitions volume of IEEE Std 1003.1-2001, <stdlib.h>

COPYRIGHT

       Portions of this text are reprinted and reproduced in  electronic  form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       -- Portable Operating System Interface (POSIX),  The  Open  Group  Base
       Specifications  Issue  6,  Copyright  (C) 2001-2003 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 .