スポンサーリンク

MKSTR(1) FreeBSD 一般コマンドマニュアル MKSTR(1)

名称

mkstr − C 言語ソースファイルからエラーメッセージファイルを作成する

書式

mkstr [] messagefile prefix file ...

解説

mkstr ユーティリティは、C 言語ソースファイルからエラーメッセージを抽出 し、これを格納するファイルを作成します。また作成されたエラーメッセージ ファイルを使用するように、そのソースファイルを修正します。mkstr は巨大な プログラムのサイズを減少させ、スワップを減らすことを目的としています ( バ グの項を参照) 。

mkstr ユーティリティは、コマンドラインで指定されたファイルを処理し、修正 した入力ファイルを、指定されたファイル名に、指定されたプレフィックスをつ けた名前のファイルで出力します。以下の使用例は典型的なものです。

      mkstr pistrings xx *.c

mkstr は、カレントディレクトリにあるすべての C 言語ソースから集めたエラー メッセージを、ファイル pistrings に出力し、修正されたソースファイルを、 ファイル名の先頭に xx をつけたファイルに出力します。

オプション

指定されたエラーメッセージファイルの最後に、エラーメッセージが置 かれます。これは、 mkstr で処理された巨大なプログラムの一部を再コ ンパイルするために使用します。

mkstr ユーティリティは、ソースファイル中の ‘error("’ という文字列をもとに エラーメッセージを検索します。この文字列が出現すると、 ‘"’ から開始される 文字列およびその後にヌル文字と改行文字をメッセージファイルに出力します; 変更前のソースにおいて文字列であった部分は、メッセージファイルのオフセッ トに置き換えられ lseek(2) によって対応するメッセージを取り出すことができ ます。実際にメッセージを取り出す場合には、以下のようなコードを使用しま す。

char efilname = "/usr/lib/pi_strings";
int efil = -1;

error(a1, a2, a3, a4)
{

char buf[256];

if (efil < 0) {

efil = open(efilname, 0);

if (efil < 0)

err(1, "%s", efilname);

}

if (lseek(efil, (off_t)a1, SEEK_SET) < 0 ||

read(efil, buf, 256) <= 0)

err(1, "%s", efilname);

printf(buf, a2, a3, a4);

}

関連項目

gencat(1), xstr(1), lseek(2)

歴史

mkstr ユーティリティは 3.0BSD で登場しました。

バグ

mkstr ユーティリティは、 PDP 11 ファミリの制限されたアーキテクチャのため に開発されました。ごく一部のプログラムしか mkstr を使用していません。現在 のシステムでは、この方法でメモリを節約しても微々たるものです。

FreeBSD 10.0 November 1, 2002 FreeBSD 10.0

スポンサーリンク