Namespaces
Variants

quick_exit

From cppreference.net
ヘッダーで定義 <stdlib.h>
_Noreturn void quick_exit ( int exit_code ) ;
(C11以降)
(C23以前)
[ [ noreturn ] ] void quick_exit ( int exit_code ) ;
(C23以降)

リソースを完全にクリーンアップせずに通常のプログラム終了を発生させます。

at_quick_exit に渡された関数は、登録された順序の逆順で呼び出されます。登録された関数を呼び出した後、 _Exit ( exit_code ) を呼び出します。

atexit に渡された関数や signal に渡されたシグナルハンドラは呼び出されません。

目次

パラメータ

exit_code - プログラムの終了ステータス

戻り値

(なし)

#include <stdlib.h>
#include <stdio.h>
void f1(void)
{
    puts("pushed first");
    fflush(stdout);
}
void f2(void)
{
    puts("pushed second");
}
void f3(void)
{
    puts("won't be called");
}
int main(void)
{
    at_quick_exit(f1);
    at_quick_exit(f2);
    atexit(f3);
    quick_exit(0);
}

出力:

pushed second
pushed first

参考文献

  • C17規格 (ISO/IEC 9899:2018):
  • 7.22.4.7 quick_exit関数 (p: 257)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.22.4.7 quick_exit関数 (p: 353)

関連項目

異常プログラム終了を引き起こす(クリーンアップなし)
(関数)
exit() 呼び出し時に実行される関数を登録する
(関数)
quick_exit 呼び出し時に実行される関数を登録する
(関数)
C++ documentation for quick_exit