MKSTR(1) — NEWS-OS Programmer’s Manual
名称
mkstr − C ソースファイルを解きほぐし、エラーメッセージファイルを作成する
形式
mkstr [ − ] messagefile prefix file ...
解説
mkstr はエラーメッセージファイルの作成に使用します。 mkstr により、 エラーメッセージが大量にあるプログラムの大きさを より小さくすることができます。 そして、 エラーメッセージを 常にスワップイン/アウトする必要がなくなり、 プログラム実行中のシステムのオーバーヘッドを 小さくできます。 mkstr は指定された各々の ファイル について、 入力ファイルを 加工したものを、 指定の prefix と元のファイル名から成る名前のファイルにセーブしながら処理します。 mkstr の典型的な使用例は次の通りです。
mkstr pistrings xx ∗.c
このコマンドは、 カレントディレクトリの Cソースファイルからの全エラーメッセージを ファイル pistrings にセーブします。 そして処理されたソースファイルのコピーを、 先頭に xx を 付けた名前のファイルにセーブします。
ソース中のエラーメッセージを メッセージファイルに処理するために、 mkstr は入力列の中の文字列 error(" を 目印とします。 ”で始まる Cの文字列は、 それがあるごとに、 ナルとニューラインを付けてメッセージファイルにセーブされます。 ナルはメッセージの検索を容易にするための区切りであり、 ニューライン文字はメッセージの内容を見る時に cat でうまく出力できるようにするためです。 処理されたファイルには、 メッセージの検索に必要なメッセージファイルへの lseek ポインタが書き込まれます。
charefilname[] = "/usr/lib/pi_strings";
intefil = -1;
error(a1, a2, a3, a4)
{
char buf[256];
if (efil < 0) {
efil = open(efilname, 0);
if (efil < 0) {
oops:
perror(efilname);
exit(1);
}
}
if (lseek(efil, (long) a1, 0) < 0 || read(efil, buf, 256) <= 0)
goto oops;
printf(buf, a2, a3, a4);
}
オプションの − を 指定すると、 mkstred コマンドに処理された大きなプログラムの一部を 再コンパイル時する際に、 エラーメッセージを 指定のメッセージファイルの最後に追加します。
関連事項
NEWS-OSRelease 4.1C