函式
<cstdlib>

quick_exit

_Noreturn void quick_exit (int status);
[[noreturn]] void quick_exit (int status) noexcept;
快速終止呼叫程序
透過呼叫所有使用 at_quick_exit 註冊的函式後,將控制權返回給宿主環境,從而正常終止程序。

不執行額外的清理任務:不呼叫物件解構函式。但是否關閉和/或重新整理 C 流,以及是否移除用 tmpfile 開啟的檔案,取決於特定的系統或庫實現。

如果 status 為零或 EXIT_SUCCESS,則向宿主環境返回一個“成功終止”狀態。
如果 statusEXIT_FAILURE,則向宿主環境返回一個“不成功終止”狀態。
否則,返回的狀態取決於系統和庫的實現。

如果一個程式同時呼叫了 exitquick_exit,或者多次呼叫 quick_exit,將導致“未定義行為”。

引數

狀態
狀態碼。
如果此值為 0EXIT_SUCCESS,表示成功。
如果此值為 EXIT_FAILURE,表示失敗。

返回值

無(該函式永不返回)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* quick_exit example */
#include <stdio.h>      /* puts */
#include <stdlib.h>     /* at_quick_exit, quick_exit, EXIT_SUCCESS */

void fnQExit (void)
{
  puts ("Quick exit function.");
}

int main ()
{
  at_quick_exit (fnQExit);
  puts ("Main function: Beginning");
  quick_exit (EXIT_SUCCESS);
  puts ("Main function: End");  // never executed
  return 0;
}

輸出
Main function: Beginning
Quick exit function.


資料競爭

併發地多次呼叫此函式沒有效果。
在呼叫此函式之前未完成的對 at_quick_exit 的呼叫可能不會成功(取決於特定的庫實現)。

異常 (C++)

無異常保證:此函式從不丟擲異常。

如果任何用 at_quick_exit 註冊的函式丟擲異常,terminate 會被自動呼叫。

另見