ERR(3) | Linux Programmer's Manual | ERR(3) |
名前¶
err, verr, errx, verrx, warn, vwarn, warnx, vwarnx - エラーメッセージを整形する
書式¶
#include <err.h> void err(int eval, const char *fmt, ...); void errx(int eval, const char *fmt, ...); void warn(const char *fmt, ...); void warnx(const char *fmt, ...); #include <stdarg.h> void verr(int eval, const char *fmt, va_list args); void verrx(int eval, const char *fmt, va_list args); void vwarn(const char *fmt, va_list args); void vwarnx(const char *fmt, va_list args);
説明¶
err() 関数群と warn() 関数群は、エラーメッセージを整形して標準エラー出力に表示する。 どの関数の場合も、(ディレクトリ部分を省いた)プログラム名、 コロン 1個、スペース 1個が出力される。 fmt 引き数が NULL でない場合、 printf(3) と同様に整形が行われ、エラーメッセージが出力される。 出力は改行文字で終わる。
関数 err(), verr(), warn(), vwarn() は、コードまたはグローバル変数 errno に基づいて strerror(3) から得たエラーメッセージを出力する。 fmt 引き数が NULL でない場合は、一個ずつのコロンとスペースに続けて出力する。
関数 err(), verr(), warn(), vwarn() は、エラーメッセージを探すためにグローバル変数 errno を使用する。
関数 errx(), warnx() はエラーメッセージを付け加えない。
関数 err(), verr(), errx(), verrx() は返り値を返さないが、引き数 eval の値を exit status に設定し終了する。
例¶
現在の errno
の情報を表示し、終了する:
if ((p = malloc(size)) == NULL)
err(1, NULL); if ((fd = open(file_name, O_RDONLY, 0)) == -1)
err(1, "%s", file_name);
エラーメッセージを表示し、終了する:
if (tm.tm_hour < START_TIME)
errx(1, "too early, wait until %s", start_time_string);
エラーを警告表示する:
if ((fd = open(raw_device, O_RDONLY, 0)) == -1)
warnx("%s: %s: trying the block device",
raw_device, strerror(errno)); if ((fd = open(block_device, O_RDONLY, 0)) == -1)
err(1, "%s", block_device);
準拠¶
これらの関数は非標準の BSD 拡張である。
関連項目¶
2007-12-28 | Linux |