ASSERT_PERROR
Section: Linux Programmer's Manual (3)
Updated: 2002-08-25
Index
JM Home Page
roff page
名前
assert_perror - test errnum and abort
書式
#define _GNU_SOURCE
#include <assert.h>
void assert_perror(int errnum);
説明
最後に
<assert.h>
がインクルードされた時にマクロ
NDEBUG
が定義されていた場合、マクロ
assert_perror()
は何のコードも生成せず、したがって全く何もしない。
そうでない場合、マクロ
assert_perror()
は標準エラーにエラー・メッセージを表示し、
errnum
が 0 でない場合には
abort(3)
を呼び出してプログラムを終了させる。
メッセージには、ファイル名、マクロ呼び出しがあった関数名と行番号、
strerror(errnum)
の出力が含まれる。
返り値
返り値はない。
準拠
これは GNU による拡張である。
バグ
assert マクロの目的は、プログラマがプログラム中のバグを探す手助けをすること
であり、コーディング間違いがない場合には何が起こることはありえない。
しかしながら、システムコールやライブラリコールの場合、状況がかなり違っていて、
エラーが返されることがありえるし、実際あるだろう。そしてそのような状況でも
テストされるべきである。この場合には、
NDEBUG
を定義することで無効にできる
assert ではなく、適切なエラー処理コードで対処すべきである。
このマクロは決して使わないこと。
関連項目
abort(3),
assert(3),
exit(3),
strerror(3),
feature_test_macros(7)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- 準拠
-
- バグ
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:32 GMT, November 19, 2007