名前空間
変種
操作

at_quick_exit

From cppreference.com
< c‎ | program
ヘッダー <stdlib.h> で定義
int at_quick_exit( void (*func)(void) );
(C11 以降)

func が指す関数を、quick_exit によるプログラムの緊急終了時に呼び出されるように登録します。

複数のスレッドからこの関数を呼び出しても、データ競合は発生しません。実装は、少なくとも 32 個の関数の登録をサポートすることが保証されています。正確な制限は実装定義です。

登録された関数は、通常のプログラム終了時には呼び出されません。その場合に関数を呼び出す必要がある場合は、atexit を使用する必要があります。

目次

[編集] パラメータ

func - プログラムの緊急終了時に呼び出される関数へのポインタ

[編集] 戻り値

登録が成功した場合は 0、それ以外の場合はゼロ以外の値を返します。

[編集]

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

出力

pushed second
pushed first

[編集] 参照

  • C17標準 (ISO/IEC 9899:2018)
  • 7.22.4.3 The at_quick_exit function (p: 255)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.22.4.3 The at_quick_exit function (p: 351)

[編集] 関連項目

(クリーンアップせずに)異常なプログラム終了を引き起こす
(関数) [編集]
クリーンアップを伴う通常のプログラム終了を引き起こす
(関数) [編集]
exit() の呼び出し時に呼ばれる関数を登録する
(関数) [編集]
完全なクリーンアップを行わずに通常のプログラム終了を引き起こす
(関数) [編集]
at_quick_exitC++ ドキュメント
English 日本語 中文(简体) 中文(繁體)