setmaps コマンド

目的

端末マップまたはコード・セット・マップを設定します。

構文

入力または出力のマップ・ファイルを指定せずに setmaps を使用するには、 次のように入力します。

setmaps-v ] [  -c -h ]

デフォルトのディレクトリーからのファイルをコード・セット・マップ・ファイルとして選択するには、 次のように入力します。

setmaps-v ] -s  -i MapName

指定されたファイルをコード・セット・マップ・ファイルとして選択するには、 次のように入力します。

setmaps-v ] -s  -I File1

デフォルトのディレクトリーからのファイルを入力または出力の端末マップ・ファイルとして選択するには、 次のように入力します。

setmaps-v ] [  -D ] [  -k KeyName ] [  -d DirectoryPath ] {  -i -o } MapName

デフォルトのディレクトリーからの複数のファイルを入力または出力の端末マップ・ファイルとして選択するには、 次のように入力します。

setmaps-v ] [  -D ] [  -d DirectoryPath ] -t MapName

指定されたファイルを入力または出力の端末マップ・ファイルとして選択するには、 次のように入力します。

setmaps-v ] [  -D ] [  -k KeyName ] {  -I -O } File1

あとで使用するためにデフォルトの端末マップ・ファイルをロードするには、 次のように入力します。

setmaps-v ] [  -D ] [  -k KeyName ] [  -r ] -l File2

あとで使用するために指定の端末マップ・ファイルをロードするには、 次のように入力します。

setmaps-v ] [  -D ] [  -k KeyName ] [  -r ] -L File1

説明

注: root ユーザー権限を持たずにこのコマンドを実行すると、コード・セット・マップはロードされず、デバッグだけが行われます。

setmaps コマンドは端末マップおよびコード・セット・マップを処理します。 -s フラグはコード・セット・マップに使用しなければなりません。 オペレーティング・システムは入出力端末マップを使用して、内部データ表示を非同期端末でサポートされる ASCII 文字に変換します。 フラグを指定せずに setmaps コマンドを入力すると、現在の入出力端末マップの名前が表示されます。

端末マップとは、パターン文字列を置き換えストリングに関連付ける規則のリストを含むテキスト・ファイルです。 このファイルは通常 /usr/lib/nls/termmap ディレクトリー内にあります。 オペレーティング・システムは入力マップ・ファイルを使用して入力をキーボードからアプリケーションにマップし、出力マップ・ファイルを使用して出力をアプリケーションからディスプレイへマップします。

端末マッピングは以下のように機能します。

  1. システムは、 マップ・ファイル内の規則によって指定されたパターンがバッファー内のサブストリングに一致するまで、バッファー内の文字を集めます。
  2. 次にシステムは、 規則によって指定された置き換えストリングを作成し、戻します。

この処理は、バッファー内の残りの文字に対して継続されます。

端末マップの規則は、パターン・プロセッサーの状態を検査して変更できます。 状態は、1 バイト文字、規則では 1 個の数字 (0 から 9) によって識別されます。 この状態は、システムが新しいマップをロードするときや端末の入力バッファーまたは出力バッファーをフラッシュするとき (KILL や INTR 文字を処理したり、プログラムが ioctl システム・コールを発行するようなとき) には、必ず初期状態の 0 にリセットされます。 端末マップは、ほかのタスクの中でも、状態を使用してマルチバイト・エスケープ・シーケンスを検出できます。 パターン内に @x を指定すると、状態 x についてのテストを行えます。置き換えストリング内 @x を含めると、状態を x に設定できます。

setmaps コマンドは、-s フラグを指定するとコード・セット・マップを標準入力デバイスに割り当てます。 オペレーティング・システムはコード・セット・マップを使用して、1 文字に必要なメモリーのバイト数と必要な表示桁数を決定します。

フラグ

項目 説明
-c この端末上のすべてのマップを消去します。
-d DirectoryPath MapName 変数を含むディレクトリーへのパスとして、DirectoryPath 変数が使用されるようにします。 このフラグと変数を指定すると、/usr/lib/nls/termmap ディレクトリーはオーバーライドされます。
-D マップをロードする前に、標準出力デバイス上で指定されたマップのデバッグ・プログラムの印刷出力を作成します。 このコマンドを使用して新規のマップ上でデバッグ・プログラムを実行するときには、マップが実際にロードされないようにするため、マップが完全にデバッグされるまでは root ユーザー権限を使って実行しないでください。
-h setmaps コマンドの使用方法の情報を表示します (上級ユーザーが -v フラグとともに使用します)。
-i MapName /usr/lib/nls/termmap/MapName.in ファイルを入力マップとして選択します。 -s フラグを指定して使用する場合には、 このフラグは /usr/lib/nls/csmap/MapName ファイルを端末コード・セット・マップ・ファイルとして選択します。
-I File1 File1 変数の内容を入力マップとして選択します。 File1 変数で指定するファイルは、絶対パス名または現在の作業ディレクトリーの相対パス名にできます。 -s フラグを指定して使用する場合には、 このフラグは File1 変数の内容を端末コード・ページ・マップ・ファイルとして選択します。
-k KeyName KeyName 変数の内容を、選択されているマップに関連付けます。 このキー名によって、通常 MapName 変数の値に設定されるデフォルト・キーはオーバーライドされます。
-l File2 後で使用するために /usr/lib/nls/termmap/File2 ファイルをロードします。 File2 変数には、マップ・ファイルの絶対パス名と接尾部 (ある場合) が含まれます。

注: このフラグを指定するには、root ユーザー権限がなければなりません。

-L File1 後で使用するために、指定されたマップをロードします。 File1 変数には、マップ・ファイルの絶対パス名と接尾部 (ある場合) が含まれます。

注: このフラグを指定するには、root ユーザー権限がなければなりません。

-o MapName /usr/lib/nls/termmap/MapName.out ファイルを端末出力マップとして選択します。
-O File1 File1 変数の内容を端末出力マップとして選択します。 File1 変数には、マップ・ファイルの絶対パス名と接尾部 (ある場合) が含まれます。
-r 既にロードされている場合でも、指定されたマップを強制的に再ロードします。 古いマップを使用している端末は、ログオフされるかマップが明示的にリセットされるまで、操作を継続します。 このフラグを指定しない場合には、マップはカーネル内にまだロードされていないときのみロードされます。

注: このフラグを指定するには、root ユーザー権限がなければなりません。

-s すべてのマップをコード・セット・マップとして処理します。
-t MapName /usr/lib/nls/termmap/MapName.in ファイルを端末入力マップとして選択し、 /usr/lib/nls/termmap/MapName.out ファイルを端末出力マップとして選択します。
-v 詳細出力を選択します。

ロードされたマップにはすべて、固有の名前が必要です。 名前の競合を避けるためには、-k フラグを使用します。 -i-o、 および -t フラグのみが暗黙的に接尾部を追加します。 マップ名を指定するほかのフラグには、適宜、接尾部が含まれていなければなりません。 要求したマップ名が既にカーネル内にロードされていれば、 コマンド・ラインで示されるパス情報が別のマップを指している場合でも、 ロードされているマップが使用されます。

コード・セット・マップを元の状態にリセットするには、 /usr/lib/nls/csmap/sbcs コード・セット・マップを使用しなければなりません。

  1. この端末用の現行マップの設定を表示するには、以下のように入力します。
    setmaps
  2. 現行端末用のマッピングをすべて消去するには、以下のように入力します。
    setmaps -c
  3. ibm3161-C 端末用のマッピング (入力マップと出力マップの両方) を設定するには、以下のように入力します。
    setmaps -t ibm3161-C
  4. vt220 入力マップを fred マップとしてカーネルにロードするには、以下のように入力します。
    
    setmaps -k fred -i vt220
  5. bob.dump というファイル内の bob という新規のマップのデバッグ出力を集めるには、以下のように入力します。
    setmaps -D -L /tmp/bob > bob.dump
  6. この端末用の IBM-932 コード・ページに準拠するコード・セット・マップを設定するには、 以下のように入力します。
    setmaps -s -i IBM-932
  7. この端末用の IBM-943 コード・ページに準拠するコード・セット・マップを設定するには、以下のように入力します。
    
    setmaps -s -i IBM-943
  8. この端末用のファイル myEUC からコード・セット・マップを設定するには、以下のように入力します。
    
    setmaps -s -I myEUC

ファイル

項目 説明
/usr/bin/setmaps setmaps コマンドが入っています。
/usr/lib/nls/termmap/*.in 入力マップ・ファイルが入っています。
/usr/lib/nls/termmap/*.out 出力マップ・ファイルが入っています。
/usr/lib/nls/csmap/sbcs 単一バイトのコード・ページ用のコード・セット・マップが入っています。
/usr/lib/nls/csmap/IBM-943 IBM-943 コード・ページ用のコード・セット・マップが入っています。
/usr/lib/nls/csmap/IBM-eucJP IBM-eucJP コード・ページ用のコード・セット・マップが入っています。