# Compaq OpenVMS
システム管理者マニュアル

前へ | 次へ | 目次 | 索引

# 第 10 章
ファイルとディレクトリの操作

本章では，ファイルの保護や操作，そしてデータ転送に関連する項目と作業について説明します。

本章の内容

本章では，次の作業について説明します。

作業 | 参照箇所
--- | ---
Extended File Specifications 機能とは | 第 10.1 節
ODS-5 ボリュームに対するアクセスの制御 | 第 10.2 節
ファイル情報の取得 | 第 10.4 節
ディスク・ファイルの保護 | 第 10.5.3 項
ディスク・ディレクトリの保護 | 第 10.5.4 項
磁気テープ・ファイルの保護 | 第 10.5.5 項
ディスク・ファイルへのアクセス | 第 10.6 節
テープ・ファイルへのアクセス | 第 10.7 節
ファイルのコピーおよび転送 | 第 10.8 節

さらに，次の項目について説明します。

項目 | 参照箇所
--- | ---
Extended File Specifications 機能 | 第 10.1 節
DCL コマンドとファイル | 第 10.3 節
ファイルの保護 | 第 10.5.1 項
テープ・ファイル名 | 第 10.7.1 項

# 10.1 Extended File Specifications 機能とは

OpenVMS バージョン 7.2 から，Extended File Specifications が， OpenVMS にこれまであったファイルの命名に関する多くの制限を取り払い，ここで説明するファイル命名機能を完全にサポートするようになりました。さらにこの機能により Compaq Advanced Server for OpenVMS 環境において OpenVMS と Windows NT の双方にまたがる一貫性のあるファイル処理を提供できるようになります。

機能 | 説明
--- | ---
新オン・ディスク構造 | Extended File Specifications は最新のボリューム・オン・ディスク構造 (ODS): レベル 5 (ODS-5) をサポートする。このディスク構造は拡張ファイル名を使用したファイルの作成と格納の基準を提示する。
追加文字セットのサポート | ファイル名の命名に使用できる広範な文字セットをOpenVMS 上で使用することができる。 Extended File Specifications は 8-bit ISO Latin-1 文字 16-bit Unicode (UCS-2) 文字セットを提供する。
拡張ファイル命名 | ファイル名は旧来の <39文字>.<39文字> という制限を越え，最大 236 バイトまで。
大文字小文字の区別の保存 | Extended File Specifications は， ODS-5 属性で作成されたファイル指定の大文字小文字の区別を保存する。
深いディレクトリ階層 | 深いディレクトリ階層のサポートのため最大 512 文字までディレクトリ指定が拡張された。

それぞれの機能について詳しくは，『Compaq OpenVMS Extended File Specifications の手引き』を参照してください。

## 10.1.1 Extended File Specifications 機能の使用

OpenVMS バージョン7.2 から， RMS で ODS-2 と ODS-5 ボリュームの両方で新しい RMS API 拡張の他に， 8 レベル以上の階層のディレクトリを省略値で使用できるようになりました。ただし，拡張ファイル名を作成できるのは，ODS-5 ボリューム上だけです。 第 9.3.3 項 と 第 9.5.5.1 項 では，それぞれ，新しい ODS-5 ボリュームの作成方法と，ODS-2 ボリュームの ODS-5 ボリュームへの変換方法を説明しています。

一旦 ODS-5 に変更すると，プログラムは拡張ファイル名を作成，あるいは読むことができるようになります。ただし，省略時の設定では， DCL (およびアプリケーションのいくつか) はすべての拡張ファイル名を サポートしているわけではありません。 1 DCL は，コマンド行プロンプトに対して小文字で入力されたファイル名を大文字に変更します。 2

注意 #### 1 従来の解析スタイルでも，DCLは一部で ODS-5 ファイル名を受け付けることができた。例えば，DCL は x.x.x という形式を受け付けることができた。 #### 2 一部のアプリケーションでは，アプリケーションのプロンプトに対してユーザがタイプしたファイル名を読むために内部的に DCL を使用している。

Extended File Specifications 解析機能の有効化

DCLがすべての拡張ファイル名を受け付られるように， Extended File Specifications のファイル名解析機能を有効にしておく必要があります。 OpenVMS Alpha システムでは，次のDCL コマンドを入力してプロセス単位で ODS-5 ファイル名を受け付けさせることができます。

    $ SET PROCESS/PARSE_STYLE=EXTENDED

ユーザがコマンドを入力すると，DCL は次のようなファイル名を受け付けるようになります。

    $ CREATE MY^[FILE

解析スタイルについて詳しくは，『Compaq OpenVMS DCL ディクショナリ』を参照してください。『OpenVMS Record Management Services Reference Manual』には， RMS の省略時の Extended File Specifications 機能について追加情報があります。

## 10.1.2 Extended File Specifications に対するユーザの期待の設定

ODS-2 と ODS-5 ファイル名の違いについて，システム管理者があらかじめ説明しておくと， ユーザは Extended File Specifications を理解しやすくなるでしょう。ファイル名の違いは，ODS-2 から ODS-5 方式に変更した場合にとくに顕著に現れます。

使用法に関してのガイド書を配布しておくとユーザに便利です。ガイド書の内容は，次のカテゴリにわけて作成します。

- 新しい Extended File Specifications の特徴

- ODS-2 と ODS-5 の混在使用

- アーキテクチャ関連の注意

### 10.1.2.1 新しい Extended File Specifications の特徴

ここでは，新しい Extended File Specifications の特徴に関して，ユーザにあまり知られていない項目について説明します。

ボリューム構造に注意

ODS-5 ファイルを ODS-5 ボリューム上に配置するためには, ディスクが ODS-2 ボリュームなのか ODS-5 ボリュームなのかを確認する必要があります。

次のようなコマンドを入力すると，ボリュームのタイプが表示されます。

    $ SHOW DEVICE DKA500:/FULL

      Disk AABOUT$DKA500:, device type DZ25 Disk, is online, allocated, deallocate
      on dismount, mounted, file-oriented device, shareable.

        Error count                    0    Operations completed 155
        .
        .
        .
      Volume Status:  ODS-5, subject to mount verification, file high-water
      marking, write-back caching enabled.

    $ SHOW DEVICE DKA200:/FULL

      Disk AABOUT$DSA200:, device type RZ25 Disk, is online, allocated, deallocate
      on dismount, mounted, file-oriented device, shareable.

        Error count                    0    Operations completed 232
        .
        .
        .

      Volume Status:  ODS-2, subject to mount verification, file high-water
      marking, write-back caching enabled.

それぞれのコマンドを実行すると， Volume Status: と表示された項目がありますが，これはボリュームが ODS-5 か ODS-2 かを表示しています。

ODS-2 ボリューム上では拡張ファイル名を使用しない

ODS-2 ボリューム上で ODS-5 拡張ファイル名を使用したファイル名 を持つファイルは作成できません。

次の例の DKA200: は ODS-2 ボリュームで，解析スタイルは EXTENDEDです。このため RMS はエラー・メッセージを返します。

    $ SET DEFAULT DKA200:[TEST]
    $ CREATE x.x.x.x
    %CREATE-E-OPENOUT, error opening DKA200:[TEST]X^.X^.X.X; as output
    -RMS-E-CRE, ACP file create failed
    -SYSTEM-W-BADFILEVER, bad file version number

大文字小文字の区別は拡張ファイル名の最初の登場時に決定

ODS-5 ボリュームでは， １つのファイルのすべてのバージョンについて，大文字小文字の区別は統一されます。大小文字の区別は最初にファイルが作成された際のファイル名で格納されます。

次の例で，このディスクは ODS-5 です。

    $ SET DEFAULT DKA500:[TEST]
    $ SET PROCESS /PARSE_STYLE=EXTENDED
    $ CREATE myfile.txt
    [Ctrl/Z]
    $ CREATE MYFILE.TXT
    [Ctrl/Z]
    $ DIRECTORY

    Directory DKA500:[TEST]
    myfile.txt;2        myfile.txt;1

大文字小文字の区別の保存と，Extended File Specifications での無視に注意

ODS-5 ディスクは，最初に入力された形でファイル名を格納するが，しかしファイルを検索する際にはこの大文字小文字の区別を無視するという点に注意する必要があります。同様に，比較をする際には例えば，DCL コマンド・プロシージャ内で DCL の文字列操作機能である `.EQS.`や `F$LOCATE`を使用する場合に注意を要します。

次の例は，DCLによってファイル名の大文字小文字の区別を無視した検索が行われたもので，非常に重要な例です。このプログラムでは，大文字小文字を区別する検索を指示する引数は指定しておらず，逆に大文字小文字の区別を無視する検索を指示する引数を指定していることに注意してください。

このプログラムは `F$SEARCH`を使ってファイル・タイプ `.TXT`を持つすべてのファイルを検索しようとしています。 RMS は (および，そのために `F$SEARCH`も) 大文字小文字の区別を無視した検索を行うので， `F$SEARCH`は `.txt`をファイル・タイプに持つファイルも同様に検索してしまいます。そこで `F$SEARCH`は， `F$LOCATE`を使い，ファイル名 `TEST`を持つファイルを検索します。 `F$LOCATE`は大文字小文字を区別した比較を行うため，最初にファイル名の文字列すべてを大文字に変換しない限りこの検索は意図通りに行なわれません。

    $ case_blind = 0
    $ if p1 .nes. "" then case_blind = 1 (1)
    $loop:
    $  file = f$search("*.TXT;") (2)
    $  if file .eqs. "" then goto not_found
    $  write sys$output "Search returns " + file
    $  if case_blind .eq. 1 then file = f$edit(file,"UPCASE") (3)
    $  if (f$locate("TEST",file) .ne. f$length(file)) then goto found (4)
    $  goto loop
    $found:
    $   write sys$output "Found a file matching TEST"
    $   exit
    $not_found:
    $   write sys$output "Did not find file matching TEST"
    $   exit

1. 引数が存在する場合(かつ，大文字小文字の区別を無視した比較ができる場合)， `case_blind`を 1に設定します。

2. ファイル名が `.TXT`または `.txt`で終わるものを検索します ( `F$SEARCH`は大文字小文字の区別をしないため)。

3. ステップ1 で大文字小文字の区別を無視した比較が選択された場合，検索時に大文字小文字の区別を無視するため，ファイル名の文字をすべて大文字に変換します。

4. `F$LOCATE`がファイルを発見した場合， `found:`に進みます。

次の例は，プログラムを実行した際の出力です。

    $ @test
    Search returns DKA300:[FISHER]test.txt;1
    Did not find file matching TEST
    $ @test case-blind
    Search returns DKA300:[FISHER]test.txt;1

    Found a file matching TEST

CONDENCED ファイル名で別個にリストされる短縮ディレクトリ名と完全ディレクトリ名

一部のシステム・ユーティリティと DCL コマンド，たとえば DIRECTORY コマンドでは，ファイル名をどのように表示するかを切り替えるスイッチを持っています。

- スタイルが CONDENSED の場合, 長さが 255 バイトまでのファイル名が表示されます。ファイル指定が 255 バイトの制限に達した場合，ディレクトリ名は短縮されてディレクトリID (DID) になります。

- スタイルが EXPANDEDの場合, ファイル名は長さ 4095 バイトまで表示されます。

次の例は 1 つの CONDENSED ディレクトリ名を示します。DIRECTORY コマンドは， DID で短縮されたディレクトリ名と短縮されていないディレクトリ名を違うものとみなすので，短縮が発生したときには，別個にヘッダを生成します。

    $ DIR/STYLE=CONDENSED

    Directory DKA300:[DEEPER.aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii._ten.aaaa.
    bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii._ten.aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.
    hhhh.iiii._ten.aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii._ten](1)

    aaaa.txt;1

    Total of 1 file.

    Directory DKA300:[528,7036,0](2)

    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.txt;1

    Total of 1 file.

    Grand total of 2 directories, 2 files.(3)

1. CONDENSED スタイルで, ディレクトリ名とファイル名の組み合せが 255 バイトを越えない場合，ディレクトリ名はディレクトリID (DID)に短縮されません。

2. CONDENSED スタイルで，ディレクトリ名とファイル名の組み合せが 255 バイトを越えた場合，ディレクトリ名はディレクトリID (DID)に短縮されます。

3. DIRECTORY コマンドを実行すると，完全なディレクトリ名と短縮されたディレクトリ名の両方が１つのディレクトリに対して表示されます。 DIRECTORY コマンドはこれを別々の２つのディレクトリのように扱って表示します。

DIRECTORY コマンドについて詳しくは，『Compaq OpenVMS DCL ディクショナリ』を参照してください。

### 10.1.2.2 ODS-2 と ODS-5 の混在使用

この節では，クラスタ内で ODS-2 と ODS-5 を同時に使用する場合の注意点について説明します。

混在ボリューム環境における従来のファイル名の使用

ODS-2 と ODS-5 の両方のボリューム上での ODS-2 と ODS-5 ファイル名の非互換の問題を避けるため，また　以前のバージョンの OpenVMS との下位互換性を保証するため， 従来の ODS-2 ファイル名だけを使用してください。

解析スタイルによるエラー・メッセージの相違

解析スタイルの違いによってユーザに表示されるエラーが変化する場合があります。従来 DCL レベルで処理されてきた構文エラーは，例えば解析スタイルが EXTENDEDの場合，現在では RMS と XQP に送られます。 この結果，ファイルの構文エラーの発生に対してユーザが受け取るメッセージは解析スタイルとボリューム構造によって多少異なることがあります。

次の例はエラー・メッセージが異なる場合の例です。

- ODS-5 ボリューム上での TRADITIONAL スタイルと EXTENDEDスタイル:

      $ SHOW DEVICE DKA500:/FULL

        Disk AABOUT$DKA500:, device type RZ25 Disk, is online, allocated, deallocate
        on dismount, mounted, file-oriented device, shareable.

          Error count                    0    Operations completed 155
          .
          .
          .
        Volume Status:  ODS-5, (1) subject to mount verification, file high-water
        marking, write-back caching enabled.

      $ SET PROCESS /PARSE_STYLE=TRADITIONAL (2)
      $ OPEN /WRITE FILE z.z.z.z
      %DCL-W-PARMDEL, invalid parameter delimiter - check use of special
      characters \.Z\ (3)
      $ SET PROCESS /PARSE_STYLE=EXTENDED (4)
      $ OPEN /WRITE FILE z.z.z.z
      $ (5)

  1. ボリュームは ODS-5である。

  2. 解析スタイルを TRADITIONALに設定した。

  3. DCL はこの ODS-5 ファイル名に対しこのようなエラーを返した。

  4. 解析スタイルを EXTENDEDに設定した。

  5. DCL がファイルを作成した。

- ODS-2 ボリューム上での TRADITIONALスタイルと EXTENDED スタイル:

        Disk AABOUT$DKA200:, device type RZ25 Disk, is online, allocated, deallocate
        on dismount, mounted, file-oriented device, shareable.

          Error count                    0    Operations completed 232
          .
          .
          .

        Volume Status:  ODS-2, (1) subject to mount verification, file high-water
        marking, write-back caching enabled.

      $ SET PROCESS /PARSE_STYLE=TRADITIONAL (2)
      $ OPEN /WRITE FILE z.z.z.z
      %DCL-W-PARMDEL, invalid parameter delimiter - check use of special
      characters \.Z\ (3)
      $ SET PROCESS /PARSE_STYLE=EXTENDED (4)
      $ OPEN /WRITE FILE z.z.z.z
      %DCL-E-OPENIN, error opening
      -RMS-E-CRE, ACP file create failed (5)
      -SYSTEM-W-BADFILEVER, bad file version number

  1. ボリュームは ODS-2 である。

  2. 解析スタイルを TRADITIONALに設定した。

  3. DCL はエラー・メッセージを返した。

  4. 解析スタイルを EXTENDEDに設定した。

  5. DCL はこのファイル名を許したが，XQP はエラーを返した。

- 同じ構文エラーに対する異なるエラー・メッセージの例:

      $ SHOW DEVICE DKA500:/FULL

        Disk AABOUT$DKA500:, device type RZ25 Disk, is online, allocated, deallocate
        on dismount, mounted, file-oriented device, shareable.

          Error count                    0    Operations completed 155
          .
          .
          .
        Volume Status:  ODS-5, (1) subject to mount verification, file high-water
        marking, write-back caching enabled.

      $ SET PROCESS /PARSE_STYLE=TRADITIONAL (2)
      $ CREATE a^<b.c

      %DCL-W-PARMDEL, invalid parameter delimiter - check use of special
      characters
       \^\ (3)

      $ SET PROCESS /PARSE_STYLE=EXTENDED (4)
      $ CREATE a^<b.c

      %CREATE-E-OPENOUT, error opening a^<b.c as output
      -RMS-F-SYN, file specification syntax error (5)

  1. ボリュームは ODS-5である。

  2. 解析スタイルを TRADITIONALに設定した。

  3. DCL は構文エラーに対し，エラー・メッセージを返した。

  4. 解析スタイルを EXTENDED に設定した。

  5. RMS は構文エラーに対し上記と異なるエラーを返した。

前へ | 次へ | 目次 | 索引