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

mkstr

前のページ 上に戻る 次のページ

mkstr




解説

     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) {
           oops:
                                   perror(efilname);
                                   exit 1 ;
                           }
                   }
                   if (lseek(efil, (long) a1, 0)  read(efil, buf, 256) <= 0)
                           goto oops;
                   printf(buf, a2, a3, a4);
           }


関連項目

     xstr(1), lseek(2)

ABELNET VPSサービス