mkcatdefs コマンド
目的
メッセージ・ソース・ファイルをプリプロセスします。
構文
mkcatdefs SymbolName SourceFile ... [ -h ]
説明
mkcatdefs コマンドは、gencat コマンドへの入力として、メッセージ・ソース・ファイルをプリプロセスします。
SourceFile メッセージ・ファイルには、記号 ID が入っています。 mkcatdefs コマンドが作成する SymbolName_msg.h ファイルには、 記号 ID と、mkcatdefs コマンドによって割り当てられたセット番号と メッセージ ID 番号との関連を示すステートメントが入っています。
mkcatdefs コマンドは、2 つの出力を作成します。1 つは、SymbolName_msg.h と呼ばれるヘッダー・ファイルです。 この SymbolName_msg.h ファイルを、ユーザーのアプリケーション・プログラムに組み込むことによって、mkcatdefs コマンドで割り当てられたセット番号とメッセージ番号にシンボル名を関連付けなければなりません。
mkcatdefs コマンドは、記号 ID の代わりの番号とともに、 メッセージ・ソース・データを標準出力に送ります。 この出力は、gencat コマンドの入力として最適です。 次のようにして、mkcatdefs コマンドの出力を gencat コマンドの入力として使用することができます。
- 新しいメッセージ・ソースをファイルに書き込むには、 > (リダイレクト記号) を指定して mkcatdefs コマンドを使用します。 このファイルを gencat コマンドへの入力として使用します。
- mkcatdefs コマンドの出力ファイルを直接 gencat コマンドにパイピングします。
- mkcatdefs コマンドの代わりに、 runcat コマンドを使用します。 runcat コマンドは自動的に、mkcatdefs コマンドを使用してメッセージ・ソース・ファイルを送信し、 次に、そのファイルを gencat コマンドにパイピングします。
mkcatdefs コマンドの実行後、アプリケーション内でシンボル名を使用して、メッセージを参照することができます。
フラグ
項目 | 説明 |
---|---|
-h | SymbolName_msg.h ファイルの生成を制御します。このフラグは、mkcatdefs コマンドの最後の引数でなければなりません。 |
例
symb.msg メッセージ・ソース・ファイルを処理して、その出力を symb.src ファイルにリダイレクトするには、次のように入力します。
mkcatdefs symb symb.msg > symb.src
生成される symb_msg.h ファイルは次のような内容です。
#ifdef _H_SYMB_MSG
#define _H_SYMB_MSG
#include <limits.h>
#include <nl_types.h>
#define MF_SYMB "symb.cat"
/* The following was generated from symb.src. */
/* definitions for set MSFAC */
#define SYM_FORM 1
#define SYM_LEN 2
#define MSG_H 6
#endif
mkcatdefs コマンドは、gencat コマンド用に、 記号 ID に割り当てられた番号を持つ symb.src メッセージ・カタログ・ソース・ファイルも作成します。
$quote " Use double quotation marks to delimit message text
$delset 1
$set 1
1 "Symbolic identifiers can only contain alphanumeric ¥
characters or the _ (underscore character)¥n"
2 "Symbolic identifiers cannot be more than 65 ¥
characters long¥n"
5 "You can mix symbolic identifiers and numbers¥n"
$quote
6 remember to include the "msg_h" file in your program
ソース・ファイルには特定の番号が入っているので、割り当てられたメッセージ番号は連続していません。 mkcatdefs プログラムは常に直前の番号に 1 を加えた番号を記号 ID に割り当てます。
注: mkcatdefs コマンドは、 出力メッセージ・ソース・ファイル中の $set コマンドの前に $delset コマンドを挿入します。 これは、gencat コマンドへのパイピング時に、 既存のカタログ内でメッセージを 1 つずつ追加、削除、および置換できないことを意味します。 セットの中のすべてのメッセージを入力しなければなりません。
ファイル
項目 | 説明 |
---|---|
/usr/bin/mkcatdefs | mkcatdefs コマンドが入っています。 |