Manpages

名 前

error, error_at_line, error_message_count, error_one_per_line, error_print_progname − glibc の エ ラ ー 書 き 出 し 関 数

書 式

#include <error.h>

void error(int status, int errnum, const char *format, ...);

void error_at_line(int status, int errnum, const char *filename,
unsigned int
linenum, const char *format, ...);

extern unsigned int error_message_count;

extern int error_one_per_line;

extern void (*error_print_progname) (void);

説 明

error() は 汎 用 的 な エ ラ ー 書 き 出 し 関 数 で あ る 。 こ の 関 数 は 標 準 出 力 (stdout) に 書 き 出 し て か ら 、 標 準 エ ラ ー 出 力 (stderr) に 書 き 出 す 。 書 き 出 す 内 容 は 、 プ ロ グ ラ ム 名 ・ コ ロ ン ・ ス ペ ー ス ・ printf(3) 形 式 の フ ォ ー マ ッ ト 文 字 列 format で 指 定 さ れ た メ ッ セ ー ジ で あ る 。 errnum が 0 以 外 の 場 合 、 2 つ 目 の コ ロ ン と ス ペ ー ス の 後 に strerror(errnum) で 指 定 さ れ た 文 字 列 も 書 き 出 す 。 format に 必 要 な 任 意 の 引 き 数 が 、 引 き 数 リ ス ト の format の 後 に 続 く 。 出 力 の 終 端 に は 改 行 文 字 が 付 く 。

error() で 出 力 さ れ る プ ロ グ ラ ム 名 は 、 大 域 変 数 program_invocation_name(3) の 値 で あ る 。 program_invocation_name の 初 期 値 は main() の argv[0] の 値 と 等 し い 。 こ の 変 数 の 値 は 変 更 可 能 で あ り 、 変 更 す る と error() の 出 力 が 変 わ る 。

status が 0 以 外 の 場 合 、 error() は exit(3) を 呼 び 出 し て 、 指 定 さ れ た 終 了 ス テ ー タ ス で プ ロ グ ラ ム を 終 了 さ せ る 。

error_at_line() 関 数 は 、 引 き 数 filenamelinenum が 追 加 さ れ て い る 以 外 は 、 error() と 同 じ で あ る 。 生 成 さ れ る 出 力 は 、 プ ロ グ ラ ム 名 の 後 に コ ロ ン ・ filename の 値 ・ コ ロ ン ・ linenum の 値 が 書 き 出 さ れ る 以 外 は 、 error() と 同 じ で あ る 。 プ リ プ ロ セ ッ サ の 値 __LINE____FILE__ は 、 error_at_line() を 呼 び 出 す と き に 役 に 立 つ 。 そ の 他 の プ リ プ ロ セ ッ サ の 値 も 使 う こ と が で き る 。 例 え ば 、 こ れ ら の 引 き 数 で 入 力 フ ァ イ ル に お け る 位 置 を 参 照 で き る 。 大 域 変 数 error_one_per_line が 0 以 外 に 設 定 さ れ て い る 場 合 、 filenamelinenum の 値 が 共 に 等 し い error_at_line() の 呼 び 出 し は 、 1 つ の (最 初 の ) メ ッ セ ー ジ の 出 力 に ま と め ら れ る 。 大 域 変 数 error_message_count は 、 error() と error_at_line() で 出 力 さ れ た メ ッ セ ー ジ の 数 を 表 す 。 大 域 変 数 error_print_progname に 関 数 の ア ド レ ス が 割 り 当 て ら れ て い る 場 合 (つ ま り NULL で は な い 場 合 )、 メ ッ セ ー ジ の 前 に プ ロ グ ラ ム 名 と コ ロ ン を 書 き 出 す の で は な く 、 こ の 関 数 を 呼 び 出 す 。 こ の 関 数 は 標 準 エ ラ ー 出 力 (stderr) に 対 し て の 適 切 な 文 字 列 を 書 き 出 さ な け れ ば な ら な い 。

準 拠

こ れ ら の 関 数 と 変 数 は GNU に よ る 拡 張 で あ り 、 移 植 性 を 考 え た プ ロ グ ラ ム で は 使 用 す べ き で は な い 。

関 連 項 目

err(3), errno(3), exit(3), perror(3), program_invocation_name(3), strerror(3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。