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 でない場合は、一個ずつのコロンとスペースに続けて出力する。

関数 errx(), warnx() はエラーメッセージを付け加えない。

関数 err(), verr(), errx(), verrx() は返り値を返さないが、引数 eval の値を exit status に設定し終了する。

属性
この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース | 属性 | 値
err(), errx(), warn(), warnx(), verr(), verrx(), vwarn(), vwarnx() | Thread safety | MT-Safe locale

準拠
これらの関数は非標準の BSD 拡張である。

例
現在の errno の情報を表示し、終了する:

    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);

関連項目
error(3), exit(3), perror(3), printf(3), strerror(3)

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