#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(), verr(), warn(), vwarn() は、グローバル変数 errno に基づいて strerror(3) から得たエラーメッセージを出力する。 fmt 引数が NULL でない場合は、一個ずつのコロンとスペースに続けて出力する。
関数 errx(), warnx() はエラーメッセージを付け加えない。
関数 err(), verr(), errx(), verrx() は返り値を返さないが、引数 eval の値を exit status に設定し終了する。
インターフェース | 属性 | 値 |
err(), errx(), warn(), warnx(), verr(), verrx(), vwarn(), vwarnx() |
Thread safety | MT-Safe locale |
p = malloc(size); if (p == NULL)
err(EXIT_FAILURE, NULL); fd = open(file_name, O_RDONLY, 0); if (fd == -1)
err(EXIT_FAILURE, "%s", file_name);
エラーメッセージを表示し、終了する:
if (tm.tm_hour < START_TIME)
errx(EXIT_FAILURE, "too early, wait until %s",
start_time_string);
エラーを警告表示する:
fd = open(raw_device, O_RDONLY, 0); if (fd == -1)
warnx("%s: %s: trying the block device",
raw_device, strerror(errno)); fd = open(block_device, O_RDONLY, 0); if (fd == -1)
err(EXIT_FAILURE, "%s", block_device);
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]