|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > f > fmtmsg - ライブラリコールの説明 fmtmsg - ライブラリコールの説明 - Linux コマンド集 一覧表名前fmtmsg - 整形されたエラーメッセージを表示する 書式
説明この関数は、引き数で記述されたメッセージを、 classification 引き数で指定されたデバイス上に表示する。 stderr に書き出されるメッセージのフォーマットは、 MSGVERB 環境変数に依存する。 label 引き数はメッセージの発生源を識別する。 この文字列はコロンで区切られた 2 つの部分から構成されていなければならない。 1 つ目の部分は 10 文字以内でなければならず、 2 つ目の部分は 14 文字以内でなければならない。 text 引き数にはエラー条件を記述する。 action 引き数にはエラーから回復するために利用可能なステップを記述する。 これが表示される場合、"TO FIX: " が前に付く。 tag 引き数はより多くの情報を見つけるためのオンラインドキュメントへの参照である。 これは label 値とユニークな識別番号を含んでいるべきである。 ダミー引き数各引き数にはダミーの値を入れることができる。 ダミーの classification 値 MM_NULLMC (0L) は出力を何も指定しない。そのため何も表示されない。 ダミーの severity 値 NO_SEV (0) は重大度 (severity) が与えられていないことを表す。 値 MM_NULLLBL , MM_NULLTXT , MM_NULLACT , MM_NULLTAG は ((char *) 0) と空文字列の別名であり、 MM_NULLSEV は NO_SEV の別名である。 classification 引き数
classification
引き数は 4 種類の情報を記述する値の和である。
severity 引き数severity 引き数は以下の 1 つの値をとることができる。
環境変数環境変数 MSGVERB ("message verbosity") は stderr への出力の一部を抑制するのに使うことができる。 (コンソールへの出力には影響しない。) この変数が定義されて、NULL でなく、 コロンで区切られた有効なキーワードのリストである場合、 キーワードに対応するメッセージの一部のみが表示される。 有効なキーワードは "label", "severity", "text", "action", "tag" である。 環境変数
SEV_LEVEL
は新しい重大度レベルを導入するのに使用できる。
デフォルトでは、上記の 5 つの重大度レベルのみが利用可能である。
他の数値の場合、
fmtmsg
()は何も表示しない。
fmtmsg
()を初めて呼び出す前に、ユーザが
SEV_LEVEL
を
severity-keyword 部は fmtmsg ()に使用されないが、存在しなければならない。 level 部は数値を文字列で表したものである。 数値は 4 より大きい値でなければならない。 この値は fmtmsg ()の severity 引き数で使用されなければならず、この重大度を選択する。 前もって宣言された重大度を上書きすることはできない。 printstring は、 この重大度のメッセージが fmtmsg ()によって生成された場合に表示される文字列である。 返り値関数は 4 つの値を返す:
準拠関数 fmtmsg ()と addseverity ()と環境変数 MSGVERB と SEV_LEVEL は System V に由来している。 関数 fmtmsg ()と環境変数 MSGVERB は POSIX.1-2001 に記述されている。 注意System V と Unixware の man ページには、 「これらの関数は "pfmt() と addsev()" または "pfmt(), vpfmt(), lfmt(), vlfmt()" で置き換えられており、 将来は削除される予定である」と書かれている。 例
#include <stdio.h> #include <fmtmsg.h> 出力は util-linux:mount: ERROR: unknown mount option TO FIX: See mount(8). util-linux:mount:017のようになり、 MSGVERB=text:action; export MSGVERBを実行した後では unknown mount option TO FIX: See mount(8).となる。 関連項目
|
|