TTY 環境の構成に使用するコマンドは、stty、setterm、jtty の 3 つです。これらのコマンドの使用方法については、各マニュアルページを参照してください。ここでは、setterm を使って日本語端末を構築する際の日本語文字コード変換 STREAMS モジュールについて説明します。
JFP は、端末ベースの入出力に対して、日本語の処理機能を提供しています。その中でも、setterm には、種類の異なる端末間にインタフェースを提供する機能があります。setterm を使って端末を設定すると、扱う文字コード (ロケールにより設定される) と端末の文字コードの違いをコード変換によって吸収できます。また STREAMS 内部で日本語文字コードが正しく処理されるように設定できます。
たとえば、ja または ja_JP.EUC ロケールで PCK 漢字端末が接続されている場合、入力は日本語 EUC に変換され、端末への出力は PCK に変換されます。
漢字端末を設定する setterm コマンドは、次のような書式で使用します。
sun% setterm [ -x name ] [ -t ] |
JFP は、setterm コマンドで漢字端末を設定できるように、以下のような日本語文字コード変換 STREAMS モジュールを提供しています。
表 6-4 日本語文字コード変換 STREAMS モジュールコード変換 STREAMS モジュール | 説明 |
---|---|
jconvs | PCK 端末用 |
jconv7 | 7 ビット JIS 端末用 |
jconv8 | 8 ビット JIS 端末用 |
jconvu | UTF-8 端末用 |
jconvrs | ja_JP.PCK ロケール用 |
jconvru | ja_JP.UTF-8 ロケール用 |
setterm コマンドを実行すると、現在のロケールと設定したい端末名に応じて、適切な STREAMS モジュールが設定されます。表 6-5 にsetterm の -x オプションで指定できる端末名を示します。
日本語ロケール間でロケールを切り替える場合は、そのたびに端末の設定も行なってください。日本語ロケール間では push される STREAMS モジュールが異なるため、再度 setterm を実行しないと、文字を正しく表示できません。
端末名 | 説明 |
---|---|
JapanPCK PCK JapanSJIS SJIS | PCK 端末用 |
JapanNewJIS8 NewJIS8 | 8 ビット新 JIS 端末用 |
JapanNewJIS7 NewJIS7 | 7 ビット新 JIS 端末用 |
JapanOldJIS8 OldJIS8 | 8 ビット旧 JIS 端末用 |
JapanOldJIS7 OldJIS7 | 7 ビット旧 JIS 端末 |
JapanEUC GenericEUC EUC | 日本語 EUC 端末用 |
UTF-8 | UTF-8 端末用 |
ASCII | ASCII 端末用 |
Error | setterm を行なった際のエラー復旧用 |
sane | STREAMS のリセット用 |
ロケールと端末の文字が同じであれば、setterm(1) を使用しないで端末の設定を行うことができます。
sun % stty deteucw |