ABORT(3)

名前
abort - プロセスの異常終了を生じさせる

書式
#include <stdlib.h>

void abort(void);

説明
abort() 関数は、まず SIGABRT の禁止 (block) を解除してから、 (raise(3) が呼び出されたかのように) 呼び出し元のプロセスに SIGABRT シグナルを上げる。その結果、 SIGABRT シグナルが捕捉 (caught) されて対応するシグナルハンドラーが 返って来ない場合以外は、プログラムの異常終了が起こる (longjmp(3) 参照)。

SIGABRT シグナルが無視、または返って来るシグナルハンドラーで 捕捉されるようになっている場合であっても、 abort() 関数はそのプロセスを終了する。 SIGABRT シグナルに対する処理方法をデフォルトに戻してから、再度 SIGABRT シグナルを上げることで、このような動作になる。

返り値
abort() 関数が返ることはない。

属性
この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース | 属性 | 値
abort() | Thread safety | MT-Safe

準拠
SVr4, POSIX.1-2001, POSIX.1-2008, 4.3BSD, C89, C99.

注意
Up until glibc 2.26, if the abort() function caused process termination, all open streams were closed and flushed (as with fclose(3)). However, in some cases this could result in deadlocks and data corruption. Therefore, starting with glibc 2.27, abort() terminates the process without flushing streams. POSIX.1 permits either possible behavior, saying that abort() "may include an attempt to effect fclose() on all open streams".

関連項目
gdb(1), sigaction(2), assert(3), exit(3), longjmp(3), raise(3)

この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。