EN JA
MKSTR(1)
MKSTR(1) FreeBSD General Commands Manual MKSTR(1)

名称

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

書式

mkstr [ -] mesgfile prefix file ...

解説

mkstr ユーティリティは、C ソースから抽出されたエラーメッセージを含んでいるファイルを作成し、作成されたエラーメッセージファイルを利用するために同じ C ソースを再構築します。 mkstr の目的は、大規模なプログラムのサイズを縮小し、スワップを縮小することでした (下記の バグ セクションを参照)。

mkstr ユーティリティは、指定された prefix (接頭辞) とオリジナルの名前から成る名前のファイルの入力の再構築されたバージョンを置いて、指定されたファイルの各々を処理します。 mkstr の典型的な使用法は、次の通りです:

mkstr pistrings xx *.c

このコマンドによって、カレントディレクトリの C ソースファイルからのすべてのエラーメッセージは、ファイル pistrings に置かれ、ソースの再構築されたコピーは、“ xx”を前に付けられた名前のファイルに置かれます。

オプションは、次の通りです:

-
エラーメッセージは、大規模な mkstr を実行されたプログラムの一部を再コンパイルするために指定されたメッセージファイルの終わりに置かれます。

mkstr ユーティリティは、入力ストリーム中の文字列‘ error("’を検索することによってソース中のエラーメッセージを見つけます。それが生じるたびに、‘ "’で始まる C 文字列は、ヌル文字と改行文字が続くメッセージファイルに格納されます。新しいソースは、検索のためのエラーメッセージファイルに 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 ファミリの制限されたアーキテクチャを対象としていました。実際にそれを使用するプログラムは、ほとんどありません。メモリの節約は、現代のコンピュータにおいて取るに足りないものです。
November 1, 2002 FreeBSD