Manpages

名 前

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