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"; 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); |
} |
関連項目
歴史
mkstr ユーティリティは 3.0BSD で登場しました。 |
バグ
mkstr ユーティリティは、 PDP 11 ファミリの制限されたアーキテクチャのため に開発されました。ごく一部のプログラムしか mkstr を使用していません。現在 のシステムでは、この方法でメモリを節約しても微々たるものです。 FreeBSD 10.0 November 1, 2002 FreeBSD 10.0 |