函式
<cstdlib>

abort

void abort (void);
[[noreturn]] void abort() noexcept;
中止當前程序
中止當前程序,導致程式異常終止。

該函式引發 SIGABRT 訊號(如同呼叫 raise(SIGABRT) 一樣)。如果未捕獲,這將導致程式終止,並向宿主環境返回一個平臺相關的不成功終止錯誤碼。

程式將在不銷燬任何物件也不呼叫任何透過 atexitat_quick_exit 傳遞的函式的情況下終止。

引數



返回值

無(該函式永不返回)。

示例

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;
}

如果已知myfile.txt不存在,會列印一條訊息並呼叫 abort

資料競爭

併發呼叫此函式是安全的,不會導致資料競爭。
但請注意,其處理過程可能會影響所有執行緒。

異常 (C++)

如果沒有使用 signal 定義用於處理 SIGABRT 的函式處理器,則該函式永遠不會丟擲異常(無丟擲保證)。
否則,行為取決於具體的庫實現。

另見