at_quick_exit
From cppreference.net
|
ヘッダーで定義
<stdlib.h>
|
||
|
int
at_quick_exit
(
void
(
*
func
)
(
void
)
)
;
|
(C11以降) | |
func
が指す関数を、クイックプログラム終了時(
quick_exit
経由)に呼び出されるよう登録します。
複数のスレッドからこの関数を呼び出してもデータ競合は発生しません。実装は少なくとも32個の関数の登録をサポートすることが保証されています。正確な上限は実装定義です。
登録された関数は 正常なプログラム終了 時には呼び出されません。その場合に関数を呼び出す必要がある場合は、 atexit を使用する必要があります。
目次 |
パラメータ
| func | - | クイックプログラム終了時に呼び出される関数へのポインタ |
戻り値
0 登録が成功した場合は0、それ以外の場合は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 at_quick_exit関数 (p: 255)
- C11規格 (ISO/IEC 9899:2011):
-
- 7.22.4.3 at_quick_exit関数 (p: 351)
関連項目
|
異常なプログラム終了を引き起こす(クリーンアップなし)
(function) |
|
|
クリーンアップを行った正常なプログラム終了を引き起こす
(function) |
|
|
exit()
呼び出し時に実行される関数を登録する
(function) |
|
|
(C11)
|
完全なクリーンアップなしで正常なプログラム終了を引き起こす
(function) |
|
C++ documentation
for
at_quick_exit
|
|