Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mkstr(1) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lseek(2)

xstr(1)

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 コマンドに処理された大きなプログラムの一部を 再コンパイル時する際に、 エラーメッセージを 指定のメッセージファイルの最後に追加します。

関連事項

lseek(2), xstr(1)

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026