Fn err , Fn errc , Fn verr , Fn verrc , Fn warn , Fn warnc , Fn vwarn , Fn vwarnc の関数は、code または大域変数 errno に基くエラーメッセージを、前にコロンと空白を付けて、付加します。 ただし、 Fa fmt 引数が NULL の場合は例外です。
Fn errc , Fn verrc , Fn warnc , および Fn vwarnc の各関数の場合、 code 引数がエラーメッセージの検索に使用されます。
Fn err , Fn verr , Fn warn , および Fn vwarn の各関数は、 グローバル変数 errno を使用してエラーメッセージを検索します。
Fn errx 関数および Fn warnx 関数は、エラーメッセージを追加しません。
Fn err , Fn verr , Fn errc , Fn verrc , Fn errx , および Fn verrx の各関数は、 戻りませんが、引数 Fa eval の値で終了します。 Fn err_set_exit 関数を使用して、 exit(3) の前に呼び出される関数を指定して、必要なクリーンアップを 実行できます。 exitf 用に NULL 関数ポインタを割り当てると、フックが 何もしないようにリセットされます。 関数は、他の関数が使用する出力ストリームを設定します。 Fa vfp 引数は、開いているストリーム (既に void * に変換されているかもしれません) か、NULL ポインタです (この場合出力ストリームは標準エラーに設定されます)。
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");