plucky (3) assert_perror.3.gz

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/ に書かれている。