バイトストリームファイルルーチンを使用することにより、COBOLレコード定義を添付することなく、データファイルの読み込みと書き込みを行なうことができる。
CBL_CLOSE_FILE | バイトストリームファイルを閉じる |
CBL_CREATE_FILE | バイトストリームファイルを作成する |
CBL_FLUSH_FILE | バイトストリームファイルのバッファーをディスクにフラッシュする |
CBL_FREE_RECORD_LOCK | ファイルのレコード錠を解錠する |
CBL_GET_RECORD_LOCK | ファイルのレコード錠を取得する |
CBL_OPEN_FILE | バイトストリームファイルを開く |
CBL_READ_FILE | バイトストリームファイルを読み込む |
CBL_TEST_RECORD_LOCK | ファイルのレコード錠を取得する |
CBL_WRITE_FILE | バイトストリームファイルを書き込む |
ルーチンの呼び出しに成功すると、RETURN-CODEレジスタが0に設定される。呼び出しがうまくいかない場合は、RETUNE-CODEレジスタにはファイルステータス値が含まれるため、呼び出しに失敗したことがわかる。本ファイルステータス値は必ず標準ANSI'74ファイルステータス値が表示される。エラー時にANSI'74ファイルステータスが定義されない場合は、拡張ファイルステータスが返される(9/nnn:nnnはランタイム システムエラー番号)。
本ルーチンを起動させるには、RETURNING句のないRETURN-CODEを必ず使用すること。バイトストリームを呼び出した時にRETURN-CODEが0以外になった場合は、PIC XX COMP-Xデータへ移動させてファイルステータスとして処理する。たとえば:
01 file-stat pic xx comp-x. 01 redefines file-stat. 03 fs-byte-1 pic x. 03 fs-byte-2 pic x comp-x. . . . call "CBL_xxx_FILE" using <parameters> if return-code not = 0 move return-code to file-stat . . .
エラー時点で、fsバイト1には"9"が、fsバイト2にはランタイム システムエラー番号が表示される。