ASSERT_PERROR

Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
Index JM Home Page
 

名前

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

関連キーワード

assert   マクロ   perror   errnum   バグ   状況   abort   define   feature   macros   最後   インクルード   コード   エラーメッセージ   メッセージ   行番号   用語   allbox   インターフェース   属性   Thread   safety   拡張   目的   プログラマ

Linux マニュアル 一覧

関連するコマンド・関数

assert.3   tee.2   HUGE_VAL.3   HUGE_VALF.3   HUGE_VALL.3   INFINITY.3
 

Index

名前
書式
説明
返り値
属性
準拠
バグ
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:27 GMT, October 11, 2026