13.2 COBOL入出力サービスルーチンの説明

COBOL入出力サービスルーチンの一覧を,次に示します。

表13-1 COBOL入出力サービスルーチンの一覧

サービスルーチンの名称順ファイルの入出力相対ファイルの入出力機能
CBLOPENファイルを開く
CBLCLOSEファイルを閉じる
CBLREADレコードの入力
CBLWRITEレコードの出力
CBLREWRITEレコードの書き換え
CBLUNLOCKレコード施錠の解除
CBLDELETE×レコードの削除
CBLSTART×レコードの位置づけ
CBLWDISKファイルのディスクへの書き込み保証
(凡例)
○:使用できる
×:使用できない

各サービスルーチンの処理概要を,次に示します。

CBLOPENサービスルーチン
  • OPEN文のモード,ファイル属性に従い,ファイルを開く。
  • 書き込みモードの場合,ファイルを作成する。ファイルがすでにある場合は,既存のファイルに上書きする。
  • 追加書き込みモードの場合,ファイルの終端にファイルポインタを移動する。
  • ファイルの排他・共用のための施錠要求をする。
  • 内部的に必要な領域を確保する。
CBLCLOSEサービスルーチン
  • ファイルを閉じる。
  • レコードの施錠を解除する。
  • オープン時に確保した領域を解放する。
CBLREADサービスルーチン
  • レコードをバッファに読み込む。
  • 読み込んだレコードの長さを設定する。
  • レコード施錠の指定に従い,レコードを施錠する,または施錠を解除する。
  • 読み込んだレコードの相対レコード番号を設定する(相対ファイルだけ)。
CBLWRITEサービスルーチン
  • バッファのレコードを書き出す。
  • レコードの施錠を解除する。
  • 書き込んだレコードの相対番号を返す(相対ファイルだけ)。
CBLREWRITEサービスルーチン
  • 書き込みバッファのレコードとの書き換えをする。
  • 直前のREAD文をチェックする(順アクセスの場合だけ)。
  • 書き換えレコード長をチェックする。
  • レコードの施錠を解除する。
CBLUNLOCKサービスルーチン
  • すべてのレコード施錠を解除する。
CBLDELETEサービスルーチン
  • レコードを削除する。
  • 直前のREAD文をチェックする(順アクセスの場合だけ)。
  • レコードの施錠を解除する。
CBLSTARTサービスルーチン
  • キー番号と条件からレコードを位置づける。
  • ファイルのアクセスモードをチェックする(乱アクセスの場合はできない)。
CBLWDISKサービスルーチン
  • ファイルに出力したデータの,ディスクへの書き込み保証を適用する。
COBOL入出力サービスルーチンを呼び出すときの注意事項
COBOL2002のファイル入出力機能と同様に,オープン時のOPEN文のモードによって実行できないサービスルーチンがあります。