RM/COBOL ファイル状態コードは、ファイル状態データ項目の 2 桁のフォーム (状態キー 1 と状態キー 2 の列の値を結合)、あるいは C$RERR 標準ライブラリ ルーチンを使用して取得できる 4 文字または 11 文字の拡張ファイル状態コードになります。
FILETYPE=21 コンパイラ指令が有効になっている場合は、常に、RM/COBOL ファイル状態コードが返されます。DIALECT"RM" コンパイラ指令を設定すると、FILETYPE=21 が自動的に設定されるため、RM/COBOL ファイル状態コードが生成されます。
RM/COBOL ファイル状態コードを返すようにプログラムが設定されているが、ファイル状態を使用していない場合、またはデータ ファイルに対して機能する宣言節がない場合、ランタイム システムによってファイル入出力エラーが報告されます。報告された拡張ファイル状態はそのままでは正しくないように見えることもありますが、異なる 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 | レコードがロックされています。 |