1 .\" Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de)
2 .\" Distributed under GPL
3 .\" adapted glibc info page
5 .\" This should run as 'Guru Meditation' (amiga joke :)
6 .\" The function is quite complex and deserves an example
8 .\" Polished, aeb, 2003-11-01
9 .\"*******************************************************************
11 .\" This file was generated with po4a. Translate the source file.
13 .\"*******************************************************************
14 .TH FMTMSG 3 2008\-06\-14 "" "Linux Programmer's Manual"
16 fmtmsg \- 整形されたエラーメッセージを表示する
19 \fB#include <fmtmsg.h>\fP
21 \fBint fmtmsg(long \fP\fIclassification\fP\fB, const char *\fP\fIlabel\fP\fB,\fP
23 \fB int \fP\fIseverity\fP\fB, const char *\fP\fItext\fP\fB,\fP
25 \fB const char *\fP\fIaction\fP\fB, const char *\fP\fItag\fP\fB);\fP
28 この関数は、引き数で記述されたメッセージを、 \fIclassification\fP 引き数で指定されたデバイス上に表示する。 \fIstderr\fP
29 に書き出されるメッセージのフォーマットは、 \fBMSGVERB\fP 環境変数に依存する。
31 \fIlabel\fP 引き数はメッセージの発生源を識別する。 この文字列はコロンで区切られた 2 つの部分から構成されていなければならない。 1
32 つ目の部分は 10 文字以内でなければならず、 2 つ目の部分は 14 文字以内でなければならない。
34 \fItext\fP 引き数にはエラー条件を記述する。
36 \fIaction\fP 引き数にはエラーから回復するために利用可能なステップを記述する。 これが表示される場合、"TO FIX: " が前に付く。
38 \fItag\fP 引き数はより多くの情報を見つけるためのオンラインドキュメントへの参照である。 これは \fIlabel\fP
39 値とユニークな識別番号を含んでいるべきである。
41 各引き数にはダミーの値を入れることができる。 ダミーの \fIclassification\fP 値 \fBMM_NULLMC\fP (0L)
42 は出力を何も指定しない。そのため何も表示されない。 ダミーの \fIseverity\fP 値 \fBNO_SEV\fP (0) は重大度 (severity)
43 が与えられていないことを表す。 値 \fBMM_NULLLBL\fP, \fBMM_NULLTXT\fP, \fBMM_NULLACT\fP, \fBMM_NULLTAG\fP
44 は \fI((char *) 0)\fP と空文字列の別名であり、 \fBMM_NULLSEV\fP は \fBNO_SEV\fP の別名である。
45 .SS "classification 引き数"
46 \fIclassification\fP 引き数は 4 種類の情報を記述する値の和である。
57 \fBMM_PRINT | MM_CONSOLE\fP
71 3 番目の値は問題の検知を行ったものをエンコードする:
80 オペレーティングシステムによって検知された。
90 \fIseverity\fP 引き数は以下の 1 つの値をとることができる。
102 この値は WARNING として表示される。
107 数値の場合は 0 から 4 である。 \fBaddseverity\fP(3) または環境変数 \fBSEV_LEVEL\fP
108 を使うことにより、表示するレベルと文字列を更に追加できる。
119 \fIstderr\fP に書き込むときにエラーが起こった。
122 コンソールに書き込むときにエラーが起こった。
124 環境変数 \fBMSGVERB\fP ("message verbosity") は \fIstderr\fP への出力の一部を抑制するのに使うことができる。
125 (コンソールへの出力には影響しない。) この変数が定義されて、NULL でなく、 コロンで区切られた有効なキーワードのリストである場合、
126 キーワードに対応するメッセージの一部のみが表示される。 有効なキーワードは "label", "severity", "text", "action",
129 環境変数 \fBSEV_LEVEL\fP は新しい重大度レベルを導入するのに使用できる。 デフォルトでは、上記の 5 つの重大度レベルのみが利用可能である。
130 他の数値の場合、 \fBfmtmsg\fP() は何も表示しない。 \fBfmtmsg\fP() を初めて呼び出す前に、ユーザが \fBSEV_LEVEL\fP を
133 SEV_LEVEL=[description[:description[:...]]]
136 のような形式でプロセスの環境に設定すると、 \fBfmtmsg\fP() は (標準のレベル 0\-4 に加えて) level に指定された値も受け付け、
137 そのようなレベルの問題が発生すると指定された printstring を表示する。 各 description は
140 severity\-keyword,level,printstring
145 severity\-keyword 部は \fBfmtmsg\fP() に使用されないが、存在しなければならない。 level
146 部は数値を文字列で表したものである。 数値は 4 より大きい値でなければならない。 この値は \fBfmtmsg\fP() の severity
147 引き数で使用されなければならず、この重大度を選択する。 前もって宣言された重大度を上書きすることはできない。 printstring は、
148 この重大度のメッセージが \fBfmtmsg\fP() によって生成された場合に表示される文字列である。
150 \fBfmtmsg\fP() は、バージョン 2.1 以降の glibc で提供されている。
152 関数 \fBfmtmsg\fP() と \fBaddseverity\fP(3) と環境変数 \fBMSGVERB\fP と \fBSEV_LEVEL\fP は
153 System V に由来している。 関数 \fBfmtmsg\fP() と環境変数 \fBMSGVERB\fP は POSIX.1\-2001 に記述されている。
155 System V と UnixWare の man ページには、 「これらの関数は "pfmt() と addsev()" または "pfmt(),
156 vpfmt(), lfmt(), vlfmt()" で置き換えられており、 将来は削除される予定である」と書かれている。
166 long class = MM_PRINT | MM_SOFT | MM_OPSYS | MM_RECOVER;
169 err = fmtmsg(class, "util\-linux:mount", MM_ERROR,
170 "unknown mount option", "See mount(8).",
171 "util\-linux:mount:017");
176 printf("Nothing printed\en");
179 printf("Nothing printed to stderr\en");
182 printf("No console output\en");
185 printf("Unknown error from fmtmsg()\en");
194 util\-linux:mount: ERROR: unknown mount option
195 TO FIX: See mount(8). util\-linux:mount:017
201 MSGVERB=text:action; export MSGVERB
208 TO FIX: See mount(8).
211 \fBaddseverity\fP(3), \fBperror\fP(3)