名 前
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) の 出 力 が 含 ま れ る 。
返 り 値
値 は 返 さ れ な い 。
準 拠
こ れ は GNU に よ る 拡 張 で あ る 。
バ グ
assert マ ク ロ の 目 的 は 、 プ ロ グ ラ マ が プ ロ グ ラ ム 中 の バ グ を 探 す 手 助 け を す る こ と で あ り 、 コ ー デ ィ ン グ 間 違 い が な い 場 合 に は 何 が 起 こ る こ と は あ り え な い 。 し か し な が ら 、 シ ス テ ム コ ー ル や ラ イ ブ ラ リ コ ー ル の 場 合 、 状 況 が か な り 違 っ て い て 、 エ ラ ー が 返 さ れ る こ と が あ り え る し 、 実 際 あ る だ ろ う 。 そ し て そ の よ う な 状 況 で も テ ス ト さ れ る べ き で あ る 。 こ の 場 合 に は 、 NDEBUG を 定 義 す る こ と で 無 効 に で き る assert で は な く 、 適 切 な エ ラ ー 処 理 コ ー ド で 対 処 す べ き で あ る 。 こ の マ ク ロ は 決 し て 使 わ な い こ と 。
関 連 項 目
abort(3), assert(3), exit(3), strerror(3)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。