I/Oデバイス

他を無視している間に、GT.Mでサポートされる各デバイスタイプは、デバイスパラメータの特定のサブセットに応答します。デバイスは、デバイス特有の方法で、または、デバイスに依存しない方法で、プログラムすることができます。デバイス固有のI/Oルーチンは、デバイスの1種類のみでの使用を意図しています。デバイスに依存しないI/Oルーチンは関数によりサポートされるすべてのデバイスの適切なデバイスパラメータが含まれているため、同じプログラムを使用しながら、ユーザは、別のデバイスの出力にリダイレクトすることもできます。

GT.Mは、以下のI/Oデバイスのタイプをサポートしています。

I/Oデバイスを認識

GT.Mの OPEN、USE、CLOSEコマンドは、デバイス名を指定する引数式を持っています。

OPENしている間、GT.Mは物理名に対して指定されたデバイス名を解読することを試みます。GT.Mが正常に物理デバイスに対してデバイス名を解読する時は、そのデバイスは、OPENのターゲットになります。もしデバイス名がドル記号($)を含んでいる場合は、GT.Mは、環境変数の変換を試みます。結果はデバイスの名前になります。もしそのような環境変数が見つからない場合は、ドル記号がファイル名の一部でありその名前によってファイルを開こうとすることと思います。

[注意] 注意

注:GT.Mは、ニーモニック空間デバイス(SOCKETまたはPIPE)のデバイス名引数を物理名ではなく任意のハンドルで解決します。

いったんデバイスがOPENすると、GT.Mは、名前とデバイスまたはファイルとの間の内部通信を確立します。したがって、デバイスがOPEN中は、デバイスの仕様にある環境変数の翻訳の変更は、デバイスを変更しません。

次の名前は、プロセスのためにオリジナルの$IOを識別します。

  • $PRINCIPAL

  • 0

デフォルトのデバイス指定

GT.Mは、デバイス指定子のために標準のfilenamesを使用します。

filenameのための完全なフォーマットは:

/directory/file

もしデバイスを指定する式が完全な filename を含んでいない場合 、式は、filenameの1つ以上の先導コンポネントに変換する環境変数で始めることができます。GT.Mは、存在しないコンポーネントのデフォルト値を適用します。

指定されたファイルが見つからない場合は、READONLY が指定されていない限り作成されます。

GT.Mの filenameのデフォルトは次のとおりです:

ディレクトリ(Directory):現在の作業ディレクトリ

ファイル(File):デフォルトなし(ユーザ定義のファイル名)

ファイルタイプ(Filetype):デフォルトなし(ユーザ定義のファイル名)

どのようにI/Oデバイス パラメータが動作するか

I/O デバイスパラメータは、何か(たとえば、CLEARSCREEN)をするためのデバイスを引き起こすアクションの実行するか、もしくは、引き続き動作するデバイスを変更する方法(例えば、 WIDTH)の特性を指定するかのいずれかです。I/Oコマンドが複数アクションするデバイスパラメータを持っている時は、GT.Mは、コマンドの引数内でデバイスパラメータの順序でアクションを実行します。コマンドがデバイスパラメータの特性を持っている時、デバイスパラメータの繰り返しまたは競合の最後の発生は、特性を決定します。

デバイスパラメータは、しばしば、特定のデバイスタイプに関連しています。GT.Mは、コマンドの引数によって指定されたデバイスのタイプに該当しないデバイスパラメータを無視します。指定されたデバイスの特性は、GT.Mイメージが持続している時間に対して有効で、または、OPENやUSEやCLOSEコマンドによって変更されるまで有効です。

以前クローズしたデバイスを再オープンする時に、GT.Mプロセスは、それが最後にクローズした時にデバイスが持っていた値に、OPENに指定されていないすべての特性を復元します。GT.Mは、FIFO、PIPE、SDを異なる方法で処理し、OPENごとに不特定のデバイス特性のデフォルト値を使用します(つまり、GT.MはSD、FIFO、PIPEのCLOSEでデバイス特性を保持しません)。

"D" の引数を持つZSHOWコマンドは、プロセスによってOPENされたすべてのデバイスの現在の特性を表示します。ZSHOWは、GT.M変数にその出力を指示することができます。ZSHOWの詳細については、 “ZSHow”を参照してください。

デバイス パラメータの略語

[重要] 重要

ほとんどの Z* デバイスパラメータは、対応するものと同じ機能を持ち、互換性の理由でサポートされています。

GT.Mのデバイスパラメータは、定義済みの略語を持っていません。GT.Mは、最低限のプレフィックス認識技術を使用してデバイスパラメータを認識します。デバイスパラメータの多くは、ニーモニック スペース(ソケットなど)の中で、先頭の4文字で、ERASELINEを除き、WRITEで始まるすべてのデバイスパラメータと、Z* ではじまるデバイスパラメータによって表すことができます。先頭4文字の認識は、否定のためにNOではじまる文字は含まれていません。

以前のバージョンとの互換性のために、GT.Mは、最小文字より短い略語で特定のデバイスパラメータを認識するでしょう。短い省略形を使用するダイレクトモードでは便利ですが、FISは、追加のデバイスパラメータを追加するかもしれませんので、従って、すべてのプログラムでは少なくとも4文字を使用することを推奨します。GT.Mは、完全にデバイスパラメータを略さずに綴りコードをコンパイルするため、間接指定またはXECUTEの引数で使用される場合を除いて、パフォーマンスのペナルティはありません。

ドキュメントの表記規則

この章では、デバイスパラメータが適用されるときに記述するために、次のニーモニックを使用しています。

TRM :ターミナルに有効

SD:シーケンシャルディスクファイルで有効

FIFO:FIFOで有効

NULL:nllデバイスで有効

SOC:ソケットデバイスの妥当性 (TCP と LOCALの両方)

SOC(LOCAL):LOCALソケットデバイスの妥当性

SOC(TCP):TCPソケットデバイスの妥当性

PIPE:PIPEデバイスで有効

[注意] 注意

小文字の "pipe"はUNIXパイプを指し、大文字の "PIPE"はGT.Mデバイスを指します。

デバイスパラメータのデフォルト値の一部は、基本的なオペレーティングシステムでのデフォルトを示しています、そして、GT.M.の呼び出しの前に変更の対象となることがあります。

デバイスに依存しないプログラミング

ユーザーがI/O用デバイスを選択する時には、GT.Mのルーチンは、2つの基本的なプログラミングアプローチの1つを取ることができます。

  • ユーザの選択は、異なったコード分岐にプログラムを指示し、それぞれ異なるデバイスタイプを処理します。

  • ユーザの選択は、デバイスを識別します。すべての選択可能なデバイスタイプを処理するには、デバイスパラメータの完全な補足で記述された単一のコードパスがあります。

後者のアプローチは、デバイスに依存しないプログラミングと呼ばれています。デバイスに依存しないプログラミングを可能にするには、GT.Mは、これと同等の機能を持つすべてのデバイスに同じデバイスパラメータを使用し、その機能をサポートしないデバイスに適用されるデバイスパラメータを無視します。

例:

OPEN dev:(EXCE=exc:REWIND:VARIABLE:WRITEONLY)

この例では、異なるデバイスに影響を与えるデバイスパラメータを使用してデバイスをOPENします。EXCEPTION(例外)は、すべてのデバイスタイプに対して効果があります。devがターミナルまたはnullデバイスの時、GT.Mは他のデバイスパラメータを無視します。devがディスク上のシーケンシャルファイルの場合は、GT.Mは、REWINDとVARIABLEを使用します。このコマンドは、すべての異なるデバイスタイプのために正当なOPENを実行します。

inserted by FC2 system