RM/COBOL ファイル状態コード

RM/COBOL ファイル状態コードは、ファイル状態データ項目の 2 桁のフォーム (状態キー 1 と状態キー 2 の列の値を結合)、あるいは C$RERR 標準ライブラリ ルーチンを使用して取得できる 4 文字または 11 文字の拡張ファイル状態コードになります。

FILETYPE=21 コンパイラ指令が有効になっている場合は、常に、RM/COBOL ファイル状態コードが返されます。DIALECT"RM" コンパイラ指令を設定すると、FILETYPE=21 が自動的に設定されるため、RM/COBOL ファイル状態コードが生成されます。

別の方言または FILETYPE 設定で実行している場合に、RM/COBOL ファイル状態コードを引き続き取得するには、次の操作を行います。
  • 環境変数 COBFSTATCONV を RM/COBOL 設定に設定します。
    set COBFSTATCONV=rmstat
  • COBFSTATCONV コンパイラ指令を設定します。

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 レコードがロックされています。