ERR(3) | FreeBSD Library Functions Manual | ERR(3) |
名前
err, verr, errx, verrx, warn, vwarn, warnx, vwarnx — エラーメッセージをフォーマットにする書式
#include <err.h> void err( int eval, const char *fmt, ...) void verr( int eval, const char *fmt, va_list args) void errx( int eval, const char *fmt, ...) void verrx( int eval, const char *fmt, va_list args) void warn( const char *fmt, ...) void vwarn( const char *fmt, va_list args) void warnx( const char *fmt, ...) void vwarnx( const char *fmt, va_list args)説明
err() や warn() といった一連の関数は、フォーマットされたエラーメッセージを標準エラーに表示する。これら全ての関数は、プログラム名からディレクトリ部分を取り去った名前に、コロンとスペースを続けたものを出力する。引き数 fmt が NULL でない場合、フォーマットされたエラーメッセージ・コロン・スペースが出力される。 err(), verr(), warn(), vwarn() 関数の場合、大域変数 errno の現在の値に対応したエラーメッセージ文字列が出力される。全ての関数で、出力の後には改行文字が付く。err(), verr(), errx(), verrx() 関数はリターンせず、引き数 eval の値で終了する。
例
現在のエラー番号 (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);
関連項目
strerror(3)履歴
err() と warn() 関数は 4.4BSD で初めて登場した。June 9, 1993 | Linux NetKit (0.17) |