[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ 索引 ]
[ DOC Home ]
この章では,標準版OpenVMSのサポートするファイル名と,日本語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 V7.2の日本語ファイル名は,このODS-5ボリューム構造でサポートされているUnicode ファイル名を利用しています。従って,日本語ファイル名のサポートはODS-5 ボリューム構造のみに限られます。
Extended File SpecificationによってサポートされるODS-5ボリューム構造によって, 日本語OpenVMS V7.2では,以下の形式のファイル名をサポートしています。
半角のA〜Z,0〜9,$,_,およびハイフンとピリオドから成る形式。
最大長はファイル名と拡張子それぞれ39文字までです。
ファイル名と拡張子あわせて最大236文字までの,ASCIIおよびISO Latin-1文字によるファイル名。
ピリオドは複数指定できますが,最低でも1つは必要です。エスケープ文字(^) を用いることで,スペースや一部の特殊記号もファイル名に使うことができます。
注意
漢字やキリル文字のように,ISO 8859-1コードセットに含まれない文字をファイル名に使用するために,16 進数によって文字を表す形式。
ファイル名にISO 8859-1コードセットを使用できる場所なら,どこにでも使用することができます。 ファイル・システム内部ではUnicodeファイル名に変換されます。
ファイル名と拡張子あわせて最大118文字までの,Unicode文字列によるファイル名。
ピリオドは複数指定できますが,最低でも1つは必要です。スペースや一部の記号もファイル名に使うことができます。
日本語OpenVMSの標準の文字コードセットであるSuper DEC漢字コードセットによるファイル名。
ファイル・システム内部ではUnicodeとしてODS-5ボリュームに格納されています。 最大長は72文字までです。ファイル・システム内部ではUnicode ファイル名に変換されます。
日本語OpenVMS V7.2では,以下の場所でSuper DEC漢字コードセットを用いて, ファイル名に日本語を使用することができます。
以下のRMS APIではSuper DEC漢字コードセットを用いて,日本語のファイル名を持つファイルにアクセスすることができます。
$CREATE | $DISPLAY | $ENTER | $ERASE |
$OPEN | $PARSE | $REMOVE | $RENAME |
$SEARCH |
★日本語ファイル名をサポートするDCLコマンド★
日本語OpenVMS V7.2では,以下のDCLコマンドおよびAPIで日本語ファイル名を正常に処理できます。
★その他のDCLコマンド★
標準版OpenVMS V7.2の提供するDCLコマンドで,Super DEC漢字コードセットを用いて日本語のファイル名を持つファイルを作成, 操作,削除することができます。
【例】
$ COPY PUBDISK:[営業3課]企画書.TXT SYS$LOGIN:新企画書.案1
注意
日本語OpenVMS V7.2の提供する日本語ユーティリティでは,日本語ファイル名を正常に処理できます。 日本語ユーティリティについての詳細は, 『日本語ユーティリティ 利用者の手引き』を参照してください。
【例】
$ EDIT/XTPU 新企画書.案1
従来のアプリケーションとの互換性のために,デフォルトでは日本語ファイル名は無効に設定されます。 ファイル名にSuper DEC漢字コードセットを使用するためには,RMS 設定を切り替える必要があります。
ファイル名にSuper DEC漢字コードセットを使用するためには,以下のコマンドを入力して,RMS の拡張機能であるファイル名コンバータを有効にします。
$ JSY$CONTROL:==$SYS$SYSTEM:JSY$CONTROL.EXE $ JSY$CONTROL SET RMS/FILENAME=SDECKANJI
ファイル名コンバータを有効にすると,RMSを経由するファイル名はすべてSuper DEC 漢字コードセットで入出力されます。またDCLのファイル名解析スタイルもExtended に切り替わります。
ファイル名コンバータを無効にするためには,以下のコマンドを入力します。
$ JSY$CONTROL SET RMS/FILENAME=DEFAULT
ファイル名コンバータを無効にすると,ファイル名にSuper DEC漢字コードセットを使用することはできません。 またDCLのファイル名解析スタイルもTraditional に切り替わります。
現在のファイル名コンバータの状態を知るためには,以下のコマンドを入力します。
$ JSY$CONTROL SHOW RMS
ファイル名コンバータが有効の場合は,以下のように表示されます。
%JSY-I-RMSFNM, Current filename mode is "sdeckanji".
ファイル名コンバータが無効の場合は,以下のように表示されます。
%JSY-I-RMSFNM, Current filename mode is "DISABLE".
ファイル名にSuper DEC漢字コードセットを使用するかどうかを,アプリケーションから制御するために, 以下の新しいAPIが用意されています。
RMSファイル名コンバータを有効または無効する。
現在のファイル名コンバータの状態を取得する。
システムにインストールされているファイル名コンバータの名前を取得する。
詳しくは『日本語ライブラリ 利用者の手引き』を参照してください。
ファイル名にSuper DEC漢字コードセットを使用するかしないかは,プロセス単位に設定されます。 日本語OpenVMS V7.2では,標準版OpenVMSと同様に, プロセス生成時にはISO Latin-1コードセットを使用します。
ユーザはJSY$CONTROLユーティリティまたはAPIを使用することで,必要に応じてプロセスの使用するファイルをSuper DEC 漢字コードセットに設定することができます。
また日本語OpenVMS V7.2では,サブプロセスは親プロセスのファイル名コンバータの状態を引き継ぎません。 そのためSPAWNコマンド等でサブプロセスを起動した場合には, 必要に応じてJSY$CONTROLユーティリティを用いるなどして, ファイル名コンバータを有効にしてください。
ファイル名コンバータの有効/無効は,プロセス単位に設定されます。したがって, マルチスレッド環境で不用意にコンバータを切り換えると他のスレッドの動作に影響を与えます。 特にRMSによるファイル・アクセスの実行中に切り換えを行うと, 予期せぬ障害が発生する場合があります。
ファイル名コンバータの切り換えは,必ずスレッド間の同期をとってから行ってください。
ファイル名コンバータを無効にしている場合は,ファイル名の指定にSuper DEC 漢字コードセットを使うことはできません。ファイル名コンバータを無効にしている場合で, 日本語ファイル名を使用するには,4桁の16 進数を用いてUnicodeの文字コードを指定します。
【例】
ファイル名 | ファイル名コンバータ有効 | ファイル名コンバータ無効 |
---|---|---|
漢字.TXT | 漢字.TXT | ^U6F22^U5B57.TXT |
ファイル名の16進数表現の詳細は,『OpenVMS Extended File Specificationsの手引き』を参照してください。
ファイル名コンバータを有効にして,ファイル名に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 |
¨ | A1AE | 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.2ではサポートしていません。ファイル名にユーザ定義文字を使用した場合の動作は不定です。
日本語OpenVMS V7.2ではサポートしていません。ファイル名にJIS補助漢字を使用した場合の動作は不定です。
日本語OpenVMS V7.2ではサポートしていません。ファイル名にこれらの文字を使用した場合の動作は不定です。
標準版OpenVMS V7.2では,最大118文字のUnicodeファイル名をサポートしていますが, 日本語OpenVMS V7.2では日本語Advanced Server V7.2と同様, 最大72文字までのファイル名をサポートします。
RMSを使用した場合の日本語ファイル名の最大長は,ファイル指定に含まれる文字の種類によって変化します。 ファイル指定にはデバイス名とディレクトリ指定, ピリオド,セミコロンとバージョン番号が含まれます。
RMS APIでは,標準版OpenVMS V7.2のRMSでサポートされる新しいデータ構造であるNAML を使用する場合,Super DEC漢字コードセットを用いて,最大72 文字までの日本語ファイル名をサポートします。
ファイル名にSuper DEC漢字コードを使用する場合,ファイル指定に含めることのできる文字列の長さは以下のとおりです。
(全角文字 + 半角カナ) × 6 + 半角文字 ≦ 2048
したがって,ディレクトリに非常に長い日本語を使用した場合や,ネストが非常に深い場合などは, ファイル名に使用できる日本語の文字数が制限されます。
ファイル指定が上記の計算式を満たす場合は,NAMLデータ構造を用いて, 最大72文字までのファイル名を使用することができます。
従来のデータ構造であるNAMを使用して,ファイル名にSuper DEC漢字コードセットを使用する場合, ファイル指定に含めることのできる文字列の長さは以下のとおりです。
(全角文字 + 半角カナ) × 6 + 半角文字 ≦ 255
したがって,ファイル指定に含めることのできる全角文字の長さは最大42 文字までとなります。
デフォルト・ディレクトリを日本語のディレクトリに変更する場合,ファイル指定には最大42 文字の全角文字を含めることができます。デフォルト・ ディレクトリの指定に含めることのできる文字列の長さは以下のとおりです。
(全角文字 + 半角カナ) × 6 + 半角文字 ≦ 255
ただしデバイス名を意味する文字列は,上記の計算式から除きます。デバイス名の長さはデフォルト・ ディレクトリの最大長に影響しません。
以下のAPIはSuper DEC漢字コードセットによる日本語ファイル名を使用できます。RMS ファイル名コンバータが有効の場合,これらのAPIはファイル名をSuper DEC 漢字コードで入出力します。
$SETDDIR
BACKUP$START
以下のAPIはファイル名にUnicodeを使用できます。
RMSファイル名コンバータは,$QIOの使用するファイル名に影響を与えません。$QIO は常に従来形式,ISO 8859-1,Unicodeのいずれかの形式でファイル名を入出力します。
[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ 索引 ]
[ DOC Home ]