RM/COBOL ファイル状態コードは、ファイル状態データ項目の 2 桁のフォーム (状態キー 1 と状態キー 2 の列の値を結合)、あるいは C$RERR 標準ライブラリ ルーチンを使用して取得できる 4 文字または 11 文字の拡張ファイル状態コードになります。
FILETYPE=21 コンパイラ指令が有効になっている場合は、常に、RM/COBOL ファイル状態コードが返されます。DIALECT"RM" コンパイラ指令を設定すると、FILETYPE=21 が自動的に設定されるため、RM/COBOL ファイル状態コードが生成されます。
RM/COBOL ファイル状態コードを返すようにプログラムが設定されているが、ファイル状態を使用していない場合、またはデータ ファイルに対して機能する宣言節がない場合、ランタイム システムによってファイル I/O エラーが報告されます。報告された拡張ファイル状態はそのままでは正しくないように見えることもありますが、異なる COBOL システムのファイル処理の違いによるものであり、報告されたエラー コードの 2 番目のバイトをバイナリから ASCII に変換する必要があります。たとえば、9/051 というエラーが報告された場合、051 を ASCII 文字の同等のもの、つまり3 (16 進数の0x33 ) に変換します。その結果、RM/COBOL ファイルの実際の状態は93になります。
状態キー 1 | 状態キー 2 | 拡張ファイル状態コード | 説明 |
---|---|---|---|
3 | 5 | 9/013 | ファイルが見つかりません。 |
3 | 5 | 9/188 | ファイル名が長すぎます。 |
3 | 7 | 9/035 | アクセス許可が不適切です。 |
3 | 7 | 9/037 | ファイルへのアクセスが拒否されました。 |
3 | 8 | 9/138 | ファイルがロックモードで閉じられており、開くことはできません。 |
3 | 8 | 9/210 | ファイルはロックモードで閉じられています。 |
4 | 1 | 9/141 | ファイルはすでに開いており、繰り返し開くことはできません。 |
4 | 2 | 9/142 | ファイルは開いておらず、閉じることはできません。 |
4 | 3 | 9/143 | REWRITE/DELETE の前の READ が正常に終了していません。 |
4 | 6 | 9/146 | 順読み込みで現在のレコードが指定されていません。 |
4 | 7 | 9/147 | READ/START のオープンモードまたは呼び出しモードが不正です。 |
4 | 8 | 9/148 | WRITE のオープンモードまたは呼び出しモードが不正です。 |
4 | 9 | 9/149 | REWRITE/DELETE のオープンモードまたは呼び出しモードが不正です。 |
9 | 3 | 9/065 | ファイルがロックされています。 |
9 | 8 | 9/071 | 索引ファイルの形式が不正です。 |
9 | 8 | 9/139 | レコード長またはキーが一致していません。 |
9 | 9 | 9/068 | レコードがロックされています。 |