Namespaces
Variants

abort

From cppreference.net
ヘッダーで定義 <stdlib.h>
void abort ( void ) ;
(C11まで)
_Noreturn void abort ( void ) ;
(C11から)
(C23まで)
[ [ noreturn ] ] void abort ( void ) ;
(C23から)

SIGABRT がsignalに渡されたシグナルハンドラによって捕捉されず、かつハンドラが戻らない限り、プログラムは異常終了します。

atexit() に渡された関数は呼び出されません。ファイルなどのオープンされたリソースがクローズされるかどうかは実装定義です。実行が失敗したことを示す実装定義のステータスがホスト環境に返されます。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - HTMLタグ、属性、クラス名はすべて保持されています - ` `内のテキストはC++関連の専門用語(Parameters、Return value、Notes、Example、References、See also)であるため、翻訳せずに保持しています - 番号や構造はすべて元のまま維持されています

パラメータ

(なし)

戻り値

(なし)

注記

POSIXは 規定しています abort() 関数が SIGABRT シグナルのブロックまたは無視を上書きすることを。

一部のコンパイラ組み込み関数、例えば __builtin_trap (gcc, clang, icc) や __fastfail / __debugbreak (msvc) は、プログラムを可能な限り高速に終了させるために使用できます。

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE *fp = fopen("data.txt","r");
    if (fp == NULL)
    {
        fprintf(stderr, "error opening file data.txt in function main()\n");
        abort();
    }
    /* Normal processing continues here. */
    fclose(fp);
    printf("Normal Return\n");
    return 0;
}

出力:

error opening file data.txt in function main()

参考文献

  • C17規格 (ISO/IEC 9899:2018):
  • 7.22.4.1 abort関数 (p: 255)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.22.4.1 abort関数 (p: 350)
  • C99規格 (ISO/IEC 9899:1999):
  • 7.20.4.1 abort関数 (p: 315)
  • C89/C90標準 (ISO/IEC 9899:1990):
  • 4.10.4.1 abort関数

関連項目

クリーンアップを行った通常のプログラム終了を引き起こす
(関数)
exit() 呼び出し時に実行される関数を登録する
(関数)
完全なクリーンアップを行わない通常のプログラム終了を引き起こす
(関数)