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

名前

       assert_perror - test errnum and abort

書式

       #define _GNU_SOURCE         /* feature_test_macros(7) 参照 */
       #include <assert.h>

       void assert_perror(int errnum);

説明

       最後に   <assert.h>   がインクルードされた時にマクロ  NDEBUG  が定義されていた場合、マクロ
       assert_perror()  は何のコードも生成せず、したがって全く何もしない。 そうでない場合、マクロ
       assert_perror()   は標準エラーにエラーメッセージを表示し、   errnum  が  0  でない場合には
       abort(3)  を呼び出してプログラムを終了させる。  メッセージには、ファイル名、マクロ呼び出し
       があった関数名と行番号、 strerror(errnum) の出力が含まれる。

返り値

       値は返されない。

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。

       ┌─────────────────┬───────────────┬─────────┐
       │インターフェース属性      │
       ├─────────────────┼───────────────┼─────────┤
       │assert_perror()  │ Thread safety │ MT-Safe │
       └─────────────────┴───────────────┴─────────┘

準拠

       これは GNU による拡張である。

バグ

       assert    マクロの目的は、プログラマがプログラム中のバグを探す手助けをすることであり、コー
       ディング間違いがない場合には何が起こることはありえない。  しかしながら、システムコールやラ
       イブラリコールの場合、状況がかなり違っていて、  エラーが返されることがありえるし、実際ある
       だろう。そしてそのような状況でも テストされるべきである。この場合には、 NDEBUG  を定義する
       ことで無効にできる  assert ではなく、適切なエラー処理コードで対処すべきである。 このマクロ
       は決して使わないこと。

関連項目

       abort(3), assert(3), exit(3), strerror(3)

この文書について

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