日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
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() 関数
は、fmt 引数が NULL でないなら、別のコロンと空白によって先行された、供給
されたエラーコード値、またはグローバル変数 errno に基づいた strerror(3)
から取得されるエラーメッセージを付け加えます。
errc(), verrc(), warnc() と vwarnc() 関数の場合に、code 引数は、エラー
メッセージを検索するために使用されます。
err(), verr(), warn() と vwarn() 関数は、エラーメッセージを検索するために
グローバル変数 errno を使用します。
errx() と warnx() 関数は、エラーメッセージを付け加えません。
err(), verr(), errc(), verrc(), errx() と verrx() 関数は、返りませんが、
引数 eval の値で終了します。sysexits(3) で定義された標準の値が eval の値
に使用されることは、推奨されます。何らかの必要なクリーンアップを実行する
ために exit(3) の前に呼び出される関数を指定するために err_set_exit() 関数
を使用することができます。exitf に対して NULL の関数ポインタを渡すこと
は、何も行わないフックをリセットします。err_set_file() 関数は、他の関数に
よって使用される出力ストリームを設定します。その vfp 引数は、オープンした
ストリームへのポインタ (たぶん既に void * に変換されている)、または NULL
ポインタ (その場合、出力ストリームは、標準エラーに設定される) のいずれか
でなければなりません。
使用例
現在の errno 情報文字列を表示して、終了します:
if ((p = malloc(size)) == NULL)
err(EX_OSERR, NULL);
if ((fd = open(file_name, O_RDONLY, 0)) == -1)
err(EX_NOINPUT, "%s", file_name);
エラーメッセージを表示して、終了します:
if (tm.tm_hour < START_TIME)
errx(EX_DATAERR, "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(EX_OSFILE, "%s", block_device);
グローバル変数 errno を使用しないエラーの警告は、次の通りです:
error = my_function(); /* <errno.h> からの値を返します */
if (error != 0)
warnc(error, "my_function");
関連項目
exit(3), fmtmsg(3), printf(3), strerror(3), sysexits(3)
規格
err() と warn() 関数ファミリは、BSD 拡張です。そういうものとして、それら
は、本当に移植性のあるコードで使用されるべきではありません。strerror() ま
たは同様の関数を代わりに使用してください。
歴史
err() と warn() 関数は、4.4BSD ではじめて登場しました。err_set_exit() と
err_set_file() 関数は、FreeBSD 2.1 ではじめて登場しました。errc() と
warnc() 関数は、FreeBSD 3.0 ではじめて登場しました。
FreeBSD 13.2 March 29, 2012 FreeBSD 13.2