名前空間
変種
操作

abort

From cppreference.com
< c‎ | program
ヘッダー <stdlib.h> で定義
void abort(void);
(C11まで)
_Noreturn void abort(void);
(C11 以降)
(C23まで)
[[noreturn]] void abort(void);
(C23以降)

シグナルハンドラに渡された SIGABRT がキャッチされており、ハンドラが返らない場合を除き、異常なプログラム終了を引き起こします。

atexit() に渡された関数は呼び出されません。ファイルなどの開かれたリソースが閉じられるかどうかは、実装定義です。未成功の実行を示すステータスがホスト環境に返されますが、これも実装定義です。

目次

[編集] パラメータ

(なし)

[編集] 戻り値

(なし)

[編集] 注記

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 The abort function (p: 255)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.22.4.1 The abort function (p: 350)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.20.4.1 The abort function (p: 315)
  • C89/C90標準 (ISO/IEC 9899:1990)
  • 4.10.4.1 The abort function

[編集] 関連項目

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