仮想ヒープルーチン

 CBL_CLOSE_VFILE ヒープを閉じる
 CBL_OPEN_VFILE ヒープを開く
 CBL_READ_VFILE ヒープから読み込む
 CBL_WRITE_VFILE ヒープへ書き込む。

ヒープとは使用可能なメモリ内に記憶されるバイトストリームファイルである。

ヒープの生成時に指定された状態語は各ヒープと関連付けられる。そのヒープの処理が失敗すると書き込まれる。各ヒープは指定されたプログラム、すなわち状態語を含むプログラムに添付され、そのプログラムがキャンセルされると自動的に割当てが解除される (CBL_CLOSE_VFILE の呼出しで、すでに明確に割当てが解除されていない場合)。

ヒープはヒープ一意名語で識別される。この語はプログラム間で渡されることが可能であり、どのようなプログラムでも本ヒープの読書きが可能である。しかし、処理の失敗を確認するためには、関連付けされた状態語にアクセスする必要がある(たとえば、ポインタ変数を使用したり、一般のリンクセクションマッピングを経由する方法がある)。

また、一般的なヒープ機能の失敗を確認するにはRETURN-CODE レジスタでも検証できる。また、CALL 文上で ON OVERFLOW/EXCEPTION 構文を使って、エラーをトラップすることもできる。この2つの方法の場合、ヒープ状態語を検証することによって、指定されたエラーを特定することができる。

ヒープの読取り・書込みが成功すると、RETURN-CODE の値は0になる。失敗した場合、RETURN-CODE は0以外の値になり、ヒープ状態の最初のバイトが9、2番目のバイトに詳細情報が含まれる。

CBL_READ_VFILE と CBL_WRITE_VFILE で使用されるバッファは、データ節や連絡節内の任意の位置に配置できる。もしくは、CBL_ALLOC_MEM ルーチンを使用して動的に割り当てることも可能となる。

各ヒープは必要なときに呼出し可能である。sourcenameはヒープが付与されているプログラムの基本名(base-name)で、nnが1から99の整数の場合、sourcename.Vnnという名称でディスク上の別のファイルに呼び出される。nnが99に達すると、Vが上書きされる。拡張可能な最大数値は384である。

ローカルヒープ番号は65535までの数字が設定できる。

バッファ呼出しのパラメタで部分参照を使用して、COBOL レコードの中でヒープバッファを宣言することができる。バッファの長さが固定されていれば、これによって効率的にコンパイルする。呼出しインターフェイスによってバッファの長さは無視されるため、バッファの長さは1として考える。

関連項目