function
<cstdlib>

abort

void abort (void);
[[noreturn]] void abort() noexcept;
Abort current process
Aborts the current process, producing an abnormal program termination.

The function raises the SIGABRT signal (as if raise(SIGABRT) was called). This, if uncaught, causes the program to terminate returning a platform-dependent unsuccessful termination error code to the host environment.

The program is terminated without destroying any object and without calling any of the functions passed to atexit or at_quick_exit.

Parameters

none

Return Value

none (the function never returns).

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* abort example */
#include <stdio.h>      /* fopen, fputs, fclose, stderr */
#include <stdlib.h>     /* abort, NULL */

int main ()
{
  FILE * pFile;
  pFile= fopen ("myfile.txt","r");
  if (pFile == NULL)
  {
    fputs ("error opening file\n",stderr);
    abort();
  }

  /* regular process here */

  fclose (pFile);
  return 0;
}

If myfile.txt does not exist, a message is printed and abort is called.

Data races

Concurrently calling this function is safe, causing no data races.
Note though that its handling process may affect all threads.

Exceptions (C++)

If no function handlers have been defined with signal to handle SIGABRT, the function never throws exceptions (no-throw guarantee).
Otherwise, the behavior depends on the particular library implementation.

See also