<html lang="en">
<head>
<title>Aborting a Program - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Program-Termination.html#Program-Termination" title="Program Termination">
<link rel="prev" href="Cleanups-on-Exit.html#Cleanups-on-Exit" title="Cleanups on Exit">
<link rel="next" href="Termination-Internals.html#Termination-Internals" title="Termination Internals">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.

This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).

Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below.  A
copy of the license is included in the section entitled "GNU Free
Documentation License".

(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual.  Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Aborting-a-Program"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Termination-Internals.html#Termination-Internals">Termination Internals</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Cleanups-on-Exit.html#Cleanups-on-Exit">Cleanups on Exit</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Program-Termination.html#Program-Termination">Program Termination</a>
<hr>
</div>

<h4 class="subsection">25.6.4 Aborting a Program</h4>

<p><a name="index-aborting-a-program-3141"></a>
You can abort your program using the <code>abort</code> function.  The prototype
for this function is in <samp><span class="file">stdlib.h</span></samp>. 
<a name="index-stdlib_002eh-3142"></a>
<!-- stdlib.h -->
<!-- ISO -->

<div class="defun">
&mdash; Function: void <b>abort</b> (<var>void</var>)<var><a name="index-abort-3143"></a></var><br>
<blockquote><p>The <code>abort</code> function causes abnormal program termination.  This
does not execute cleanup functions registered with <code>atexit</code> or
<code>on_exit</code>.

        <p>This function actually terminates the process by raising a
<code>SIGABRT</code> signal, and your program can include a handler to
intercept this signal; see <a href="Signal-Handling.html#Signal-Handling">Signal Handling</a>. 
</p></blockquote></div>

<!-- Put in by rms.  Don't remove. -->
   <p><table class="cartouche" summary="cartouche" border="1"><tr><td>
<strong>Future Change Warning:</strong> Proposed Federal censorship regulations
may prohibit us from giving you information about the possibility of
calling this function.  We would be required to say that this is not an
acceptable way of terminating a program. 
</td></tr></table>

   </body></html>

