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 コマンドが入っています。