前へ | 次へ | 目次 | 索引 |
この章では,標準版 OpenVMS のサポートするファイル名と,日本語 OpenVMS のサポートする日本語ファイル名について説明します。
5.1 標準版 OpenVMS におけるファイル・システムの拡張
Extended File Specifications は,ファイル名に使える文字が Unicode に拡張され,OpenVMS の従来のバージョンに存在するさまざまなファイル名の制約を緩和するファイル処理環境です。Extended File Specifications は, Advanced Server を使用する環境において, OpenVMS システムと Windows NT システムの両方で,一貫性のあるファイル処理を可能します。
Extended File Specifications は,On-Disk Structure Level 5 (ODS-5) をインプリメントしています。この新しいボリューム構造は,拡張ファイル名を持つファイルを作成し,格納するための基礎となります。 ODS-5 ボリューム構造には,以下の機能があります。
日本語 OpenVMS の日本語ファイル名は,この ODS-5 ボリューム構造でサポートされている Unicode ファイル名を利用しています。従って,日本語ファイル名のサポートは ODS-5 ボリューム構造のみに限られます。
ODS-5 ボリューム構造についての詳細は,『 OpenVMS Extended File Specificationsの手引き』を参照してください。 |
Extended File Specification によってサポートされる ODS-5 ボリューム構造によって,日本語 OpenVMS では,以下の形式のファイル名をサポートしています。
半角の A〜Z,0〜9,$,_,およびハイフンとピリオドから成る形式。
最大長はファイル名と拡張子それぞれ 39 文字までです。
ファイル名と拡張子あわせて最大 236 文字までの, ASCII および ISO Latin-1 文字によるファイル名。
ピリオドは複数指定できますが,最低でも 1 つは必要です。エスケープ文字 (^) を用いることで,スペースや一部の特殊記号もファイル名に使うことができます。
日本語 OpenVMS では ISO Latin-1 文字はサポートしません。 ASCII 文字部分のみのサポートとなります。 |
漢字やキリル文字のように,ISO 8859-1 コードセットに含まれない文字をファイル名に使用するために,16 進数によって文字を表す形式。
ファイル名に ISO 8859-1 コードセットを使用できる場所なら,どこにでも使用することができます。ファイル・システム内部では Unicode ファイル名に変換されます。
ファイル名と拡張子あわせて最大 118 文字までの,Unicode 文字列によるファイル名。
ピリオドは複数指定できますが,最低でも 1 つは必要です。スペースや一部の記号もファイル名に使うことができます。
ファイル名と拡張子あわせて最大 118 文字までの, Super DEC 漢字コードセットによるファイル名。
日本語 OpenVMS V7.3 では,標準の文字コードセットである DEC 漢字 2000 コードセットはファイル名に使用することはできません。
ファイル・システム内部では Unicode として ODS-5 ボリュームに格納されています。ファイル・システム内部では Unicode ファイル名に変換されます。
5.3 Super DEC 漢字コードセットによる日本語ファイル名
日本語 OpenVMS では,以下の場所で Super DEC 漢字コードセットを用いて,ファイル名に日本語を使用することができます。
以下の RMS API では Super DEC 漢字コードセットを用いて,日本語のファイル名を持つファイルにアクセスすることができます。
$CREATE | $DISPLAY | $ENTER | $ERASE |
$OPEN | $PARSE | $REMOVE | $RENAME |
$SEARCH |
★日本語ファイル名をサポートするDCLコマンド★
日本語 OpenVMS では,以下の DCL コマンドおよび API で日本語ファイル名を正常に処理できます。
★その他の DCL コマンド★
標準版 OpenVMS の提供する DCL コマンドで, Super DEC 漢字コードセットを用いて日本語のファイル名を持つファイルを作成,操作,削除することができます。
【例】
$ COPY PUBDISK:[営業3課]企画書.TXT SYS$LOGIN:新企画書.案1 |
日本語 OpenVMS では,標準版 OpenVMS V7.2 の DCL コマンドで日本語ファイル名が完全に正常に動作することを保証しません。一部のDCLコマンドでは日本語ファイル名が正しく表示されないなどの問題が発生する場合があります。 |
日本語 OpenVMS の提供する日本語ユーティリティでは,日本語ファイル名を正常に処理できます。日本語ユーティリティについての詳細は,『日本語ユーティリティ 利用者の手引き』を参照してください。
【例】
$ EDIT/XTPU 新企画書.案1 |
従来のアプリケーションとの互換性のために,デフォルトでは日本語ファイル名は無効に設定されます。ファイル名に Super DEC 漢字コードセットを使用するためには, RMS 設定を切り替える必要があります。
5.4.1 JSY$CONTROL ユーティリティ
ファイル名に Super DEC 漢字コードセットを使用するためには,以下のコマンドを入力して, RMS の拡張機能であるファイル名コンバータを有効にします。
$ JSYCP:==$SYS$SYSTEM:JSY$CONTROL.EXE $ JSYCP SET RMS/FILENAME=SDECKANJI |
ファイル名コンバータを有効にすると, RMS を経由するファイル名はすべて Super DEC 漢字コードセットで入出力されます。また DCL のファイル名解析スタイルも Extended に切り替わります。
DCL のファイル名解析スタイルについての詳細は,『 OpenVMS Extended File Specificationsの手引き』を参照してください。 |
ファイル名コンバータを無効にするためには,以下のコマンドを入力します。
$ JSYCP SET RMS/FILENAME=DEFAULT |
ファイル名コンバータを無効にすると,ファイル名に Super DEC 漢字コードセットを使用することはできません。また DCL のファイル名解析スタイルも Traditional に切り替わります。
現在のファイル名コンバータの状態を知るためには,以下のコマンドを入力します。
$ JSYCP SHOW RMS |
ファイル名コンバータが有効の場合は,以下のように表示されます。
%JSY-I-RMSFNM, Current filename mode is "sdeckanji". |
ファイル名コンバータが無効の場合は,以下のように表示されます。
%JSY-I-RMSFNM, Current filename mode is "DISABLE". |
ファイル名に Super DEC 漢字コードセットを使用するかどうかを,アプリケーションから制御するために,以下の新しいAPIが用意されています。
RMSファイル名コンバータを有効または無効する。
現在のファイル名コンバータの状態を取得する。
システムにインストールされているファイル名コンバータの名前を取得する。
詳しくは『日本語ライブラリ 利用者の手引き』を参照してください。
5.4.3 日本語ファイル名の設定の単位
ファイル名に Super DEC 漢字コードセットを使用するかしないかは,プロセス単位に設定されます。日本語 OpenVMS V7.3,V7.3-1 では,標準版 OpenVMS と同様に,プロセス生成時には ISO Latin-1 コードセットを使用します。
ユーザは JSY$CONTROL ユーティリティまたは API を使用することで,必要に応じてプロセスの使用するファイルを Super DEC 漢字コードセットに設定することができます。
日本語 OpenVMS V7.3,V7.3-1 では,V7.2 および V7.2-1 と異なり,サブプロセスは親プロセスのファイル名コンバータの状態を引き継ぎます。そのためファイル名コンバータが有効になっているプロセスから SPAWN コマンド等でサブプロセスを起動した場合には,JSY$CONTROL ユーティリティを用いなくても,ファイル名コンバータが有効になります。
5.4.4 ファイル名コンバータの非同期切り換えの禁止
ファイル名コンバータの有効/無効は,プロセス単位に設定されます。したがって,マルチスレッド環境で不用意にコンバータを切り換えると他のスレッドの動作に影響を与えます。特にRMSによるファイル・アクセスの実行中に切り換えを行うと,予期せぬ障害が発生する場合があります。
ファイル名コンバータの切り換えは,必ずスレッド間の同期をとってから行ってください。
5.4.5 16 進数表現による日本語ファイル名
ファイル名コンバータを無効にしている場合は,ファイル名の指定に Super DEC 漢字コードセットを使うことはできません。ファイル名コンバータを無効にしている場合で,日本語ファイル名を使用するには, 4 桁の 16 進数を用いて Unicode の文字コードを指定します。
ファイル名コンバータを無効にしている状態で,ファイル名に Super DEC 漢字コードを入力すると, RMS はそれを ISO Latin-1コードとみなして,ファイルにアクセスしようとします。その結果,エラーが発生したり,または正常動作しているように見えても実際には日本語ではないファイル名が作成されたりする場合があります。 |
【例】
ファイル名 | ファイル名コンバータ有効 | ファイル名コンバータ無効 |
---|---|---|
漢字.TXT | 漢字.TXT | ^U6F22^U5B57.TXT |
ファイル名の16進数表現の詳細は,『OpenVMS Extended File Specifications の手引き』を参照してください。
5.5 日本語ファイル名に使用できる文字
ファイル名コンバータを有効にして,ファイル名に Super DEC 漢字コードセットを使用している場合, RMS では以下の文字をファイル名として使用できます。
ただし,以下の文字を除く
アスタリスク (*)
疑問符 (?)
ファイル名コンバータを有効にすると, RMS では入出力されるファイル名を Super DEC 漢字コードとみなし, ODS-5 ボリュームでサポートされる Unicode に変換します。変換規則は以下のとおりです。
上位 8 bit にゼロを追加し,Unicode の 0x0020 〜 0x007E に変換されます。ファイル名がこれらの文字だけから成る場合は,日本語ファイル名とはみなされないため, Unicode ではなく ISO 8859-1 に変換されます。
つぎの例外を除き,Unicode の対応する文字に変換されます。
b-1. ISO Latin-1に変換される文字
以下の文字は ISO Latin-1 文字とみなされるため,ファイル名がこれらの文字だけから成る場合は, Unicode ではなく ISO 8859-1 に変換されます。
文字 | SDK | Unicode |
---|---|---|
´ | A1AD | 00B4 |
¨ | A1AF | 00A8 |
± | A1DE | 00B1 |
× | A1DF | 00D7 |
÷ | A1E0 | 00F7 |
° | A1EB | 00B0 |
§ | A1F8 | 00A7 |
¶ | A2F9 | 00B6 |
b-2.半角文字と重複する全角文字
全角アルファベットなど半角文字にも同じ文字があるものは, Unicode では 0xFF01 〜 0xFF9F に変換されます。一部の文字は例外的に 0xFFxx 以外に変換されます。
文字 | SDK | Unicode |
---|---|---|
” | A1C9 | 201D |
’ | A1C7 | 2019 |
半角カナは Unicode の 0xFF61 〜 0xFF9F に変換されます。
日本語 OpenVMS V7.3-1 ではサポートしていません。ファイル名にユーザ定義文字を使用した場合の動作は不定です。
日本語 OpenVMS V7.3-1 ではサポートしていません。ファイル名に JIS 補助漢字を使用した場合の動作は不定です。
日本語 OpenVMS V7.3-1 ではサポートしていません。ファイル名にこれらの文字を使用した場合の動作は不定です。
日本語 OpenVMS V7.3-1 では,標準版 OpenVMS V7.3-1 と同様に,最大 118 文字の Unicode ファイル名をサポートしています。
RMS を使用した場合の日本語ファイル名の最大長は,使用している API や,ファイル指定に含まれる文字の種類によって変化します。ファイル指定にはデバイス名とディレクトリ指定,ピリオド,セミコロンとバージョン番号が含まれます。
5.7.1 新しい RMS API による日本語ファイル名の最大長
RMS API では,標準版 OpenVMS V7.3 の RMS でサポートされる新しいデータ構造である NAML を使用する場合,Super DEC漢字コードセットを用いて,最大 118 文字までの日本語ファイル名をサポートします。
ファイル名に Super DEC 漢字コードを使用する場合,ファイル指定に含めることのできる文字列の長さは以下のとおりです。
(全角文字 + 半角カナ) ×6+半角文字≦ 4095 (単位:バイト) |
したがって,ディレクトリに非常に長い日本語を使用した場合や,ネストが非常に深い場合などは,ファイル名に使用できる日本語の文字数が制限されます。
ファイル指定が上記の計算式を満たす場合は,NAML データ構造を用いて,最大 118 文字までのファイル名を使用することができます。
NAML データ構造および RMS の拡張に関する詳細は,『 OpenVMS Extended File Specifications の手引き』を参照してください。 |
従来のデータ構造である NAM を使用して,ファイル名に Super DEC 漢字コードセットを使用する場合,ファイル指定に含めることのできる文字列の長さは以下のとおりです。
(全角文字 + 半角カナ) ×6+半角文字≦ 255 (単位:バイト) |
したがって,ファイル指定に含めることのできる全角文字の長さは最大 42 文字までとなります。
42 文字を越える長さのファイル指定を使用した場合, RMS はファイル指定全体を FID 形式に変換して処理を継続しますが,これは日本語 OpenVMS V7.3 のサポート範囲外です。 |
デフォルト・ディレクトリを日本語のディレクトリに変更する場合,ファイル指定には最大 42 文字の全角文字を含めることができます。デフォルト・ディレクトリの指定に含めることのできる文字列の長さは以下のとおりです。
(全角文字 + 半角カナ) ×6+半角文字≦ 255 (単位:バイト) |
ただしデバイス名を意味する文字列は,上記の計算式から除きます。デバイス名の長さはデフォルト・ディレクトリの最大長に影響しません。
デフォルト・ディレクトリに含まれる全角文字および半角カナの文字数は,ファイル名に使用できる日本語の文字数に影響を与えます。長い日本語は,なるべくデフォルト・ディレクトリには使用しないでください。 |
以下の API は Super DEC 漢字コードセットによる日本語ファイル名を使用できます。 RMS ファイル名コンバータが有効の場合,これらの API はファイル名を Super DEC 漢字コードで入出力します。
$SETDDIR |
なお,日本語 OpenVMS V7.3,V7.3-1 では BACKUP ユーティリティの日本語化方法が変更されたため, BACKUP API では日本語ファイル名を使用できなくなりました。 BACKUP ユーティリティでは引きつづき日本語ファイル名を使用できます。
以下の API はファイル名に Unicode を使用できます。
RMS ファイル名コンバータは,$QIO の使用するファイル名に影響を与えません。 $QIO は常に従来形式, ISO 8859-1,Unicode のいずれかの形式でファイル名を入出力します。
$QIO の拡張に関する詳細は,『 OpenVMS Extended File Specificationsの手引き』を参照してください。 |
前へ | 次へ | 目次 | 索引 |