ERR(3) FreeBSD ライブラリ関数マニュアル ERR(3)
名称
err, verr, errc, verrc, errx, verrx, warn, vwarn, warnc, vwarnc, warnx, vwarnx, err_set_exit, err_set_file − フォーマットされたエラーメッセージ |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <err.h> void |
err(int eval, const char *fmt, ...); void |
err_set_exit(void (*exitf)(int)); void |
err_set_file(void *vfp); void |
errc(int eval, int code, const char *fmt, ...); void |
errx(int eval, const char *fmt, ...); void |
warn(const char *fmt, ...); void |
warnc(int code, const char *fmt, ...); void |
warnx(const char *fmt, ...); #include <stdarg.h> |
void |
verr(int eval, const char *fmt, va_list args); void |
verrc(int eval, int code, 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 |
vwarnc(int code, const char *fmt, va_list args); void |
vwarnx(const char *fmt, va_list args); |
解説 |
err() 関数と warn() 関数のファミリは、標準エラー出力、または err_set_file() 関数を使用して指定した別のファイル上にフォーマット済みのエ ラーメッセージを表示します。すべての場合に、プログラム名の最後のコンポー ネント、コロンキャラクタ、およびスペースが出力されます。 fmt 引数が NULL でない場合、 printf(3) のようなフォーマット済みのエラーメッセージが出力さ れます。出力の最後には改行文字が付きます。 err(), errc(), verr(), verrc(), warn(), warnc(), vwarn(), vwarnc() の関数 は、code または大域変数 errno に基くエラーメッセージを、前にコロンと空白 を付けて、付加します。ただし、 fmt 引数が NULL の場合は例外です。 errc(), verrc(), warnc(), および vwarnc() の各関数の場合、 code 引数がエ ラーメッセージの検索に使用されます。 err(), verr(), warn(), および vwarn() の各関数は、グローバル変数 errno を 使用してエラーメッセージを検索します。 errx() 関数および warnx() 関数は、エラーメッセージを追加しません。 err(), verr(), errc(), verrc(), errx(), および verrx() の各関数は、戻りま せんが、引数 eval の値で終了します。 err_set_exit() 関数を使用して、 exit(3) の前に呼び出される関数を指定して、必要なクリーンアップを実行でき ます。 exitf 用に NULL 関数ポインタを割り当てると、フックが何もしないよう にリセットされます。関数は、他の関数が使用する出力ストリームを設定しま す。 vfp 引数は、開いているストリーム (既に void * に変換されているかもし れません) か、NULL ポインタです (この場合出力ストリームは標準エラーに設定 されます)。 |
例
現在の 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); |
グローバル変数 errno を使用しないエラーの警告 error = my_function(); /* returns a value from <errno.h> */ if (error != 0) |
warnc(error, "my_function"); |
関連項目
歴史
err() 関数と warn() 関数は最初に 4.4BSD で現れました。 err_set_exit() 関 数 err_set_file() 関数は最初に FreeBSD 2.1 で現れました。 errc() 関数と warnc() 関数は最初に FreeBSD 3.0 で現れました。 FreeBSD 10.0 March 6, 1999 FreeBSD 10.0 |