Namespaces
Variants

_Exit

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

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

at_quick_exit() または atexit() に渡された関数は呼び出されません。未書き込みのバッファデータを持つオープンストリームがフラッシュされるかどうか、オープンストリームがクローズされるかどうか、一時ファイルが削除されるかどうかは実装定義です。

exit_code 0 または EXIT_SUCCESS の場合、正常終了を示す実装定義のステータスがホスト環境に返されます。 exit_code EXIT_FAILURE の場合、 異常終了 を示す実装定義のステータスが返されます。それ以外の場合、実装定義のステータス値が返されます。

目次

パラメータ

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

戻り値

(なし)

#include <stdlib.h>
#include <stdio.h>
/* _Exit does not call functions registered with atexit. */
void f1(void)
{
    puts("pushed first");
}
void f2(void)
{
    puts("pushed second");
}
int main(void)
{
    printf("Enter main()\n");
    atexit(f1);
    atexit(f2);
    fflush(stdout);   /* _Exit may not flush unwritten buffered data */
    _Exit(0);
}

出力:

Enter main()

参考文献

  • C17規格 (ISO/IEC 9899:2018):
  • 7.22.4.5 _Exit関数 (p: 256)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.22.4.5 _Exit関数 (p: 352)
  • C99規格 (ISO/IEC 9899:1999):
  • 7.20.4.4 _Exit関数 (p: 316)

関連項目

異常なプログラム終了を引き起こす(クリーンアップなし)
(関数)
クリーンアップを行った正常なプログラム終了を引き起こす
(関数)