日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS
ドキュメント・ライブラリ

タイトルページ
目次
まえがき
リファレンス・セクション
    ≫ コマンド一覧
    ≫ レキシカル関数
付録 A:廃止されたコマンド
付録 B:DCL整数表現の範囲を超える数値の処理
索引
PDF    Vol.1   Vol.2
OpenVMS ホーム

HP OpenVMS
DCL ディクショナリ


目次 索引




論理名に等価名を対応させます。

形式

DEFINE 論理名等価名[,...]


パラメータ



論理名

論理名文字列を指定します。論理名文字列には,1 文字から 255 文字までを含むことができます。次の規則が適用されます。

  • 論理名が,プロセスまたはシステムの論理名ディレクトリ・テーブル (LNM$SYSTEM_DIRECTORY および LNM$PROCESS_DIRECTORY) に入力された場合,論理名は 1 文字から 31 文字までの英数字 ( ドル記号 ($) とアンダースコア (_) 文字を含む ) だけで構成されます。論理名が論理名テーブル名に変換される場合は,名前の中の英文字はすべて大文字である必要があります。

  • 論理名の最後にコロン (:) を指定した場合,DEFINE コマンドは,そのコロンを論理名の一部として保存します。( この点は,ASSIGN コマンドと異なっています。 ASSIGN コマンドでは,論理名テーブルに名前を登録する前に,コロンが削除されます。) 省略時の設定では,論理名はプロセス論理名テーブルに登録されます。

  • 文字列に英数字,ドル記号,またはアンダースコア以外の文字が含まれている場合には,その文字列を引用符 (" ") で囲みます。論理名に引用符が含まれる場合には,論理名全体を引用符で囲み,論理名の中で引用符 (") が必要な位置に連続する 2 つの二重引用符 ("") を指定します。論理名を引用符で囲む場合には,英字の大文字と小文字の区別もそのまま保存されます。



等価名[,...]

1 文字から 255 文字までの文字列を指定します。

  • 文字列に英数字,ドル記号,またはアンダースコア以外の文字が含まれる場合には,文字列全体を引用符で囲まなければなりません。等価文字列に引用符が含まれる場合には,文字列全体を引用符で囲み,引用符 (") が必要な位置に連続する2つの二重引用符 ("") を指定します。 2 つ以上の等価名を指定すれば,サーチ・リストを作成できます。 1 つの論理名は,最大 128 個までの等価名を持つことができます。

  • ファイル指定として使用される等価名を指定する場合には,その等価名が直接使用されるときに必要となる区切り文字 ( コロン,かぎ括弧,ピリオド ) も含まなければなりません。したがって,等価名として装置名を指定する場合には,等価名の最後にコロンを指定します。

DEFINE コマンドでは,同じ論理名を複数の等価名に割り当てることができます。たとえば,同じ論理名を使用して異なるディスクの異なるディレクトリを,アクセスすることができ,また異なるディレクトリの異なるファイルをアクセスできます。


説明

DEFINEコマンドは,1 つまたは複数の等価名を表わす論理名を定義して,論理名テーブル内のエントリを作成します。等価名には,装置名,別の論理名,ファイル指定,または他の文字列を使用できます。

論理名の使用を,特定のプロセス,特定のジョブ,特定のグループに制限することができます。また,論理名をシステム全体あるいは OpenVMS Cluster システム全体で使用することもできます。これは,論理名が作成されるテーブルに依存します。テーブルを指定するには, /PROCESS,/JOB,/GROUP,/SYSTEM,/TABLE の修飾子のいずれかを使用します。

最初の 4 つの修飾子は,それぞれプロセス,ジョブ,グループ,システムの論理名テーブルを表わしています。/TABLE 修飾子は,任意のタイプのテーブルを指定するために使用されます。/TABLE 修飾子は,クラスタ全体の論理名テーブルを指定する場合に使用される唯一のものです。

/PROCESS,/JOB,/GROUP,/SYSTEM,/TABLE の修飾子の複数を指定した場合は,最後に指定した修飾子だけが有効となります。これらの修飾子のいずれも指定しない場合は,論理名はユーザのプロセス論理名テーブルに追加されます。

作成する論理名のアクセス・モードを指定するには,/USER_MODE, /SUPERVISOR_MODE,または /EXECUTIVE_MODE 修飾子を使用します。複数の修飾子を指定した場合は,最後に指定した修飾子だけが有効です。アクセス・モードを指定しないと,スーパバイザ・モード名が作成されます。名前を入れるテーブルと同じモードまたは外側のモードで,論理名を作成できます ( 利用者モードが一番外側のモードで,エグゼクティブ・モードが一番内側のモードです )。

それぞれの論理名のアクセス・モードが異なる限り,同じ論理名テーブルに同じ名前を持つ複数の論理名をいれることができます ( ただし,テーブル内の既存の論理名が NO_ALIAS 属性を持つ場合は,このテーブルで同じ名前を使用して外側のモードの論理名を作成できません )。

既存の名前と同じモードで,同じテーブルに同じ名前を持つ論理名を作成すると,新しい論理名で既存の論理名が置き換えられます。

ASSIGN コマンドを使用して,論理名を作成することもできます。テーブルから論理名を削除するには,DEASSIGN コマンドを使用します。

  注意
SYS$SYSTEM: 内の実行可能イメージのファイル名と同じ論理名を割り当てないでください。そのイメージが起動できなくなります。

等価名を指定しない ( すなわちインデックスを指定しない ) で論理名を作成する場合は,$CRELNM システム・サービスを使用します。

等価名として ODS-5 ファイル名を指定する場合は,『OpenVMS システム管理者マニュアル (上巻)』を参照してください。

アプリケーションでの使用を除く,論理名および論理名テーブルについての完全な説明については,『OpenVMS ユーザーズ・マニュアル』を参照してください。アプリケーションでの論理名の使用については,『HP OpenVMS Programming Concepts Manual』を参照してください。クラスタ全体の論理名の管理については,『OpenVMS Cluster システム』を参照してください。また,論理名の変換に使用されるレキシカル関数 F$TRNLNM についての本書の説明も参照してください。


修飾子



/CLUSTER_SYSTEM

この修飾子を使用するためには, SYSTEM アカウントでログインするか, SYSNAM (システム論理名) または SYSPRV (システム) 特権を持っている必要があります。

LNM$SYSCLUSTER テーブルにクラスタ・ワイド論理名を定義します。

/EXECUTIVE_MODE

エグゼクティブ・モードの論理名を作成するためには, SYSNAM(システム論理名)特権が必要です。

指定したテーブルに,エグゼクティブ・モードの論理名を作成します。

/EXECUTIVE_MODE 修飾子を指定しても,SYSNAM 特権を持たない場合には, DEFINE コマンドはその修飾子を無視し,スーパバイザ・モードの論理名を作成します。論理名のアクセス・モードは,論理名を登録するテーブルのモードと同じか,それより低いものでなければなりません。

/GROUP

グループ論理名テーブルに論理名を登録するためには, GRPNAM(グループ論理名)特権または SYSNAM(システム論理名)特権が必要です。

論理名をグループ論理名テーブルに登録します。登録者の UIC ( 利用者識別コード)のグループ番号が同じである他の利用者は,この論理名をアクセスできます。 /GROUP 修飾子は,/TABLE=LNM$GROUP 修飾子の同意語です。

/JOB

論理名を,ジョブ論理名テーブルに登録します。この論理名を作成したプロセスと同じジョブ階層構造に含まれるプロセスはすべて,この論理名をアクセスできます。/JOB 修飾子は,/TABLE=LNM$JOB 修飾子の同意語です。

/LOG (省略時の設定)

/NOLOG

既存の名前を無効にする論理名の定義時に,メッセージを表示するか否かを制御します。

/NAME_ATTRIBUTES[=(キーワード[,...])]

論理名に対して,属性を指定します。省略時の設定では,属性は設定されません。属性に対して指定できるキーワードは,次のとおりです。

CONFINE 論理名が,SPAWN コマンドによって生成されたサブプロセスにコピーされないことを指定します。このキーワードは,プロセス固有のテーブルに論理名を作成する場合にだけ意味を持ちます。

CONFINE 属性は,論理名が登録される論理名テーブルの属性からも与えられます。論理名テーブルが "CONFINE" 属性を持つ場合には,そのテーブルに含まれる論理名もすべて "CONFINE" 属性を持ちます。

NO_ALIAS より低い特権の(外側の)アクセス・モードでは,同じ名前の論理名をこのテーブルに登録できないことを指定します。同じ名前を持つ他の論理名が,より低い特権のアクセス・モードで,このテーブルにすでに登録されている場合には,その名前は削除されます。

キーワードを 1 つしか指定しない場合には,括弧を省略できます。また,指定した属性だけが設定されます。

/PROCESS (省略時の設定)

論理名を,プロセス論理名テーブルに登録します。 /PROCESS 修飾子は,/TABLE=LNM$PROCESS 修飾子の同意語です。

/SUPERVISOR_MODE (省略時の設定)

指定したテーブルに,スーパバイザ・モードの論理名を作成します。論理名のアクセス・モードは,論理名を登録するテーブルのモードと同じか,それより低いものでなければなりません。

/SYSTEM

システム論理名テーブルに名前を登録するためには,書き込み (W) アクセス権または SYSNAM(システム論理名)特権が必要です。

論理名をシステム論理名テーブルに登録します。システム上のすべてのユーザが,この論理名をアクセスできます。/SYSTEM 修飾子は, /TABLE=LNM$SYSTEM 修飾子の同意語です。

/TABLE=テーブル名

共有可能な論理名テーブルの名前を指定するには,テーブルへの書き込み (W) アクセス権が必要です。

論理名を登録する論理名テーブルの名前を指定します。/TABLE 修飾子を使用すれば,利用者定義論理名テーブル (CREATE/NAME_TABLE コマンドによって作成されたもの ) を指定できます。また,プロセス論理名テーブル,ジョブ論理名テーブル,グループ論理名テーブル,システム論理名テーブル,クラスタ論理名テーブルと,プロセスまたはシステムの論理名ディレクトリ・テーブルを指定できます。

複数の等価文字列が与えられている論理名を使用して,テーブル名を指定する場合には,論理名は最初に検出されたテーブルに登録されます。たとえば,DEFINE/TABLE=LNM$FILE_DEV を指定し,LNM$FILE_DEV が LNM$PROCESS,LNM$JOB,LNM$GROUP,および LNM$SYSTEM と等しいと定義されている場合には,その論理名は LNM$PROCESS に登録されます。

省略時の設定では,/TABLE=LNM$PROCESS が使用されます。

/TRANSLATION_ATTRIBUTES[=(キーワード[,...])]

等価名修飾子。

論理名の等価文字列に,1 つまたは複数の属性を指定します。変換属性に対して指定できるキーワードは,次のとおりです。

CONCEALED 等価文字列が隠し装置名であることを示します。隠し装置名を定義した場合,システムは,その装置を参照するメッセージの中で,等価文字列ではなく,論理名を表示します。
TERMINAL 等価文字列が,反復変換されないことを示します。したがって,論理名変換は,現在の等価文字列の変換で終了しなければなりません。

キーワードを 1 つしか指定しない場合には,括弧を省略できます。また,指定した属性だけが設定されます。

1 つの論理名に対して複数の等価文字列が存在する場合,各等価文字列は,それぞれ異なる変換属性を持つことができます。

/USER_MODE

指定したテーブルに,ユーザ・モードの論理名を作成します。

プロセス論理名テーブルに作成されたユーザ・モードの論理名は,ただ 1 つのイメージの実行のためだけに使用されます。たとえば,ユーザ・モードの論理名を作成すれば,コマンド・プロシージャ内で実行されるイメージに SYS$INPUT を再定義させることもできます。ユーザ・モードの論理名は,そのプロセス内で実行されるイメージが終了した時に ( つまり,イメージを実行する DCL コマンドやユーザー・プログラムが実行を終了した後に ),プロセス論理名テーブルから削除されます。また,ユーザ・モードの論理名は,コマンド・プロシージャを起動した時や終了した時にも自動的に削除されます。


#1
$ DEFINE/USER_MODE TM1 $DISK1:[ACCOUNTS.MEMOS]WATER.TXT

この例では,DEFINE コマンドで TM1 をファイル指定に等価なものとして定義しています。次のイメージ実行後に,論理名 TM1 は自動的に削除されます。

#2
$ DEFINE CHARLIE XXX1:[CHARLES]
$ PRINT  CHARLIE:TEST.DAT
Job 274 entered on queue SYS$PRINT

この例では,DEFINE で論理名 CHARLIE を,ディスク XXX1 のディレクトリ名 [CHARLES] に関連付けています。 PRINT コマンドは,ファイル XXX1:[CHARLES]TEST.DAT のコピーをシステム・プリンタのキューに登録します。

#3
$ DEFINE PROCESS_NAME  LIBRA
$ RUN WAKE

この DEFINE コマンドは,PROCESS_NAME という論理名をプロセス論理名テーブルに登録し,LIBRA という等価名に割り当てます。この論理名は,スーパバイザ・モードで作成されます。 WAKE というプログラムは,PROCESS_NAMEという論理名を変換し, LIBRA という名前のプロセスに対して特殊な動作を実行します。

#4
$ DEFINE TEMP:  XXX1:
   .
   .
   .
$ DEASSIGN TEMP::

この DEFINE コマンドは,TEMP: という論理名に XXX1: という等価文字列を割り当て,この論理名をプロセス論理名テーブルに登録します。コロンは,論理名の一部として扱われます。DEASSIGN コマンドは,論理名を削除します。 DEASSIGN コマンドでは,この論理名を指定するために 2 つのコロンが必要です。 1 つのコロンが,DEASSIGN コマンドによって削除されるためです。したがって,もう 1 つのコロンは論理名の一部として処理されます。

#5
$ DEFINE PORTLAND PRTLND::YYY0:[DECNET.DEMO.COM]

この DEFINE コマンドは, PRTLND::YYY0:[DECNET.DEMO.COM]という等価文字列を使用して,プロセス論理名テーブルに PORTLAND という論理名を登録します。その後の論理名 PORTLAND の参照では,指定されたノード,ディスク,サブディレクトリが参照されます。

#6
$ DEFINE LOCAL "BOSTON""JAY_SABLE JKS""::"

この DEFINE コマンドは,BOSTON"JAY_SABLE JKS":: というリモート・ノード等価名を使用して,プロセス論理名テーブルに LOCAL という論理名を登録します。現在のノードでの DCL コマンド文字列処理に関する規則に従って, 3組の引用符を使用しています。引用符によって,等価名に含まれるアクセス制御情報が 1組の引用符で囲まれるようにしています。

#7
$ DEFINE MYDISK XXX0:[MYDIR], YYY0:[TESTDIR]

この例では,論理名 MYDISK を XXX0:[MYDIR] と YYY0:[TESTDIR] のサーチ・リストとして,プロセス論理名テーブルに登録しています。

#8
$ DEFINE/TABLE=LNM$CLUSTER_TABLE FIRENZE FIRENZE::FIESOLE:[ETRUSCAN]

この例では, DEFINE コマンドが FIRENZE をディレクトリ指定 FIRENZE::FIESOLE:[ETRUSCAN] に対応させ,新しい論理名 (FIRENZE) およびその等価文字列 (FIRENZE::FIESOLE:[ETRUSCAN]) を省略時のクラスタ全体のテーブルに置きます。新しい論理名は,クラスタ内のすべてのノードに自動的に伝達されます。

#9
$  CREATE/NAME_TABLE TABLE1
$  DEFINE/TABLE=LNM$PROCESS_DIRECTORY LNM$FILE_DEV -
_$ TABLE1,LNM$PROCESS,LNM$JOB,LNM$GROUP,LNM$SYSTEM
$  DEFINE/TABLE=TABLE1 -
_$ /TRANSLATION_ATTRIBUTES=CONCEALED   WORK_DISK DKA1:

この例では,CREATE/NAME_TABLE コマンドはプロセス固有の論理名テーブル TABLE1 を作成しています。

最初の DEFINE コマンドは,装置やファイル指定の論理名変換の際に TABLE1 が最初に検索されるようにしています(なぜなら,TABLE1 が論理名 LNM$FILE_DEV の等価文字列の最初の項目であり, LNM$FILE_DEV は装置やファイル指定が変換される際の論理名テーブル検索の省略時の順序を決めるものだからです)。

次の DEFINE コマンドは,論理名 WORK_DISK を物理装置 DKA1 の等価名として TABLE1 に登録しています。論理名 WORK_DISK は,隠し装置名の属性を与えられているので,システム・メッセージにもそのまま変換されずに表示されます。

#10
$ CREATE/NAME_TABLE SPECIAL
$ DEFINE/TABLE=LNM$PROCESS_DIRECTORY LNM$FILE_DEV -
_$ SPECIAL,LNM$PROCESS,LNM$JOB,LNM$GROUP,LNM$SYSTEM
$ DEFINE/TABLE=LNM$PROCESS_DIRECTORY TAB SPECIAL
$ DEFINE/TABLE=TAB REPORT [CHELSEA]STORES
$ SHOW LOGICAL/TABLE=SPECIAL REPORT
  "REPORT" = "[CHELSEA]STORES" (SPECIAL)
 

この例では,CREATE/NAME_TABLE コマンドで SPECIAL という論理名テーブルを作成しています。このテーブルは,プロセス・ディレクトリ LNM$PROCESS_DIRECTORY に登録されます。

最初の DEFINE コマンドは,装置やファイル指定の論理名変換の際に SPECIAL が最初に検索されるようにしています(なぜなら,SPECIAL が論理名 LNM$FILE_DEV の等価文字列の最初の項目であり, LNM$FILE_DEV は装置やファイル指定が変換される際の論理名テーブル検索の省略時の順序を決めるものだからです)。論理名 LNM$FILE_DEV は,プロセス・ディレクトリ LNM$PROCESS_DIRECTORY に登録されています。

次の DEFINE コマンドで,論理名 TAB を新たに定義しています。 TAB は,論理名テーブルを示す SPECIAL という文字列に変換されます。 TAB は反復変換によって論理名テーブルになるため,プロセス・ディレクトリに登録しなければなりません。

次に,論理名 REPORT が,論理名テーブル TAB に登録されています。 TAB はテーブル SPECIAL に変換されるため,論理名 REPORT はテーブル SPECIAL に登録されます。 SHOW LOGICAL コマンドで,論理名 REPORT がテーブル SPECIAL に登録されたことを確認することができます。

TAB は,別のテーブルを指すように再定義することができます。したがって,TAB をテーブル名として利用する複数のプログラムを走らせる場合に,論理名を登録したり参照したりする実際のテーブルを変えることができます。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.