+----------------------------------IBM 拡張----------------------------------+
目的
WAIT ステートメントは、非同期データ転送の完了を待つため、
または非同期データ転送ステートメントの完了状況を検出するために使用することができます。
構文
>>-WAIT--(--wait_list--)---------------------------------------><
|
- wait_list
- 1 つの ID= 指定子と、
他の有効な指定子をそれぞれ最大で 1 つ入れなければならないリストです。
有効な指定子は次のとおりです。
- DONE= logical_variable
- 非同期 I/O ステートメントが完了するかしないかを指定します。
DONE= 指定子がある場合、logical_variable は、
非同期 I/O が完了する場合には真、完了しない場合には偽に設定されます。
戻り値が false の場合、DONE= 指定子がないか、その戻り値が true になるまで、1 つまたは
複数の WAIT ステートメントを実行する必要があります。
DONE= 指定子を持たない WAIT ステートメント、または logical_variable 値を true に
設定する WAIT ステートメントは、同じ ID= 値によって識別されるデータ転送ステートメントに対応する WAIT ステートメントです。
- END= stmt_label
- エラーが発生しないでファイルの最終レコードまで達した場合に、
プログラムの実行を継続するステートメント・ラベルを指定するファイルの終わり指定子です。
外部ファイルはファイルの最終レコードの後に位置付けられます。
IOSTAT= 指定子が指定されている場合、この指定子には負の値が割り当てられます。
NUM= 指定子が指定されている場合、この指定子には整数値が割り当てられます。
END= 指定子をコーディングすると、ファイルの終わりに関する
エラー・メッセージが抑止されます。
この指定子は、順次アクセスまたは直接アクセス用に接続された装置に
指定することができます。
非同期データ転送ステートメントの END= 指定子に対して
定義された stmt_label は、対応する WAIT ステートメント
の END= 指定子に対して定義された stmt_label と同一である必要はありません。
- ERR= stmt_label
- エラーが発生した場合に制御が移される、同じ有効範囲単位内の実行可能ステートメントの
ステートメント・ラベルを指定するエラー指定子です。
ERR= 指定子をコーディングすると、エラー・メッセージは抑制されます。
非同期データ転送ステートメントの ERR= 指定子に対して
定義された stmt_label は、対応する WAIT ステートメント
の ERR= 指定子に対して定義された stmt_label と同一である必要はありません。
- ID= integer_expr
- WAIT ステートメントで識別されるデータ転送を示します。
integer_expr は、INTEGER(4) 型またはデフォルト整数型の整数式です。
非同期データ転送を開始するために、ID= 指定子は、READ または WRITE ステートメントで
使用されます。
- IOMSG= iomsg_variable
- 入出力操作によって戻されるメッセージを指定する入出力状況指定子です。
iomsg_variable は、デフォルトのスカラー文字変数です。これを、使用関連付けされた非ポインター保護変数にすることはできません。
この指定子を含む入出力ステートメントの実行が完了すると、iomsg_variable は以下のように定義されます。
- エラー、ファイルの終わり、またはレコードの終わりという条件が発生した場合、この変数には割り当てによる場合と同様に説明メッセージが割り当てられます。
- そのような条件が発生しなかった場合には、変数の値は変更されません。
- IOSTAT= ios
-
入出力操作の状況を示す入出力状況指定子です。
ios は整変数です。この指定子を含む入出力ステートメントの実行が完了すると、ios は
以下の値に定義されます。
- エラーが発生しなかった場合は 0
- エラーが発生した場合は正の値
- ファイルの終わりが検出されていて、しかも、
エラーが発生しなかった場合は、負の値が定義されます。
非同期データ転送ステートメントの IOSTAT= 指定子に対して
定義された ios は、対応する WAIT ステートメント
の IOSTAT= 指定子に対して定義された ios と同一である必要はありません。
規則
対応する WAIT ステートメントは、対応する非同期データ転送ステートメントと同じ有効範囲単位内に
なければなりません。
有効範囲単位内のインスタンス内では、プログラムは、対応する WAIT ステートメントが実行される
前に、RETURN、END、または STOP ステートメントを実行することはできません。
関連情報
+------------------------------End of IBM 拡張-------------------------------+
