Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       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.

注意

       glibc 2.26 以前は、 abort() 関数によってプロセスの終了が引き起こされたときには、すべての開
       いているストリームは  (close(3) で) 閉じられフラッシュされる。しかしながら、この動作はデッ
       ドロックやデータ破壊につながる場合がある。そのため、 glibc 2.27 以降では、 abort()  はスト
       リームをフラッシュせずにプロセスを終了する。    POSIX.1-2001    ではどちらの動作も認めてお
       り、「abort() にはすべてのオープンされたストリームに対して fclose() を行おうとする処理が含
       まれていてもよい」  ("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/ に書かれている。