| 
|  | ≫ |  | 
 |  | OpenVMS OpenVMSユーザーズ・マニュアル
 
 
 
 | 12.14.1 自動フォーリン・コマンドの使用 |  |  | 
次のことに注意してください。
 
 論理名 DCL$PATH は検索リスト・タイプの論理名でもかまわない。
 論理名の各変換のノード,デバイス,ディレクトリの部分だけが使用される。
 通常の論理名の優先順位が有効である。ユーザは独自の論理名を定義することにより, DCL$PATH のシステム定義を変更できる。システム定義が存在するときに,ユーザがその機能を使用したくない場合には,論理名の定義を" " に変更することにより,システム定義を無効にできる。
 DCL の動詞およびシンボル名に対して使用できる文字は,ファイル名に対して使用できる文字と異なる。たとえば, DCL シンボルではハイフン (-) を使用できず, 1 文字目にドル記号 ($) を使用することもできない。実行するイメージまたはプロシージャが DCL シンボル名として正しくない場合には,この新しい機能を使用して直接起動することはできない。
 DCL はコマンドを解析していない。起動されるイメージが独自のコマンド解析を実行しなければならない。 C プログラムの場合には, main() ルーチンに対して "argc" と "argv" パラメータを使用する。他の言語で作成されたプログラムの場合には, LIB$GET_FOREIGN を呼び出して,コマンド行全体を入手する。その後,コマンド行をプログラムで解析しなければならない。
 ディレクトリにコマンド・プロシージャと実行可能イメージの両方が登録されている場合には,最初に検索されたファイルが起動される。 OpenVMS システムでは,ディレクトリはアルファベット順に並べられているため, ".COM" ファイルの方が ".EXE"ファイルより先に検索される。他のオペレーティング・システムを稼動しているノードを示す DCL$PATH 論理名に,ネットワーク・ファイル指定を指定した場合には, ".COM" ファイルより前に ".EXE" ファイルが検索される可能性がある。 DCL は無効動詞をファイル指定として使用し,"DCL$PATH:.*" を省略時のファイル指定として使用して検索を実行するため,特定のファイルが検索されるような方法で論理名を定義することができる。たとえば,論理名 FOO を "FOO.EXE" として定義し,DCL プロンプトに対して "FOO" と入力すると,FOO.COM は絶対に起動されず,FOO.EXE だけが起動される。
 
 
 
 |  | 注意 特権付きユーザが省略時のデバイスおよびディレクトリを他のユーザ・アカウントに設定した場合には, "SYS$DISK:[]" を DCL$PATH 論理名の定義に指定しないでください。この操作を実行すると,DCL はカレント・ディレクトリを検索します。入力エラーがある場合や,検索リストで変換の配置方法が不適切な場合には,カレント・ディレクトリのユーザ・イメージが検索され,特権が与えられた状態で誤って起動される可能性があります。
 | 
 
 
 
 | 12.14.2 自動フォーリン・コマンドの制限事項 |  |  | 
次の制限事項に注意してください。
 
 OpenVMS オペレーティング・システム Version 6.2 より以前のバージョンで,自動フォーリン・コマンドを使用することはできない。
 新しい動詞をいつでも DCL コマンド・テーブルに追加することができるため,ある時点で自動フォーリン・コマンドによって動作したコマンドが,将来動作しなくなる可能性がある。
 自動フォーリン・コマンド機能は,どのような場合にも動作するわけではない。次の例では,DCL ( 動詞の最初の 4 文字だけを調べる ) は, SHOW という動詞 (SHOWME の最初の 4 文字 ) と一致するものを検索し, SHOWME.COM プロシージャではなく,SHOW USERS コマンドを実行する。 SHOWME を DCL シンボルとして定義した場合には, SHOWME コマンドは SHOWME.COM を起動する。
 
 | 
$ DEFINE DCL$PATH SYS$SYSTEM,SYS$DISK:[]FOO
$ TYPE SHOWME.COM
$ SHOW SYMBOL P1 
$ EXIT
$ SHOWME USERS
      OpenVMS User Processes at MARCH 2, 1999 01:40 PM 
    Total number of users = 1,  number of processes = 11 
 
 Username     Interactive  Subprocess   Batch 
 RSMITH              9         2 
 | 
 
 
 
 
 
     |