15.1 バイトストリーム入出力サービスルーチンの概要

バイトストリーム入出力サービスルーチンを使用すると,COBOLのレコード定義に依存しないで,Cプログラムなどで作成したバイナリファイルの読み書きができます。バイトストリーム入出力サービスルーチンの一覧を「表15-1 バイトストリーム入出力サービスルーチンの一覧」に示します。

表15-1 バイトストリーム入出力サービスルーチンの一覧

サービスルーチンの名称機能
CBLSTMCLOSEバイトストリーム処理用に開かれたファイルを閉じる。
CBLSTMCREATEバイトストリーム処理用の新しいファイルを作成する。
CBLSTMOPENバイトストリーム処理用に既存のファイルを開く。
CBLSTMREADファイルからバイト列を読み込む。
CBLSTMWRITEファイルへバイト列を書き出す。
<この節の構成>
(1) バイトストリーム入出力サービスルーチンを使用するときの注意事項

(1) バイトストリーム入出力サービスルーチンを使用するときの注意事項

RETURN-CODE特殊レジスタに返す値
0:処理が正常終了した。
負の値:引数の指定に誤りがある。
正の値:上記以外で処理中にエラーが発生した。

表15-2 RETURN-CODE特殊レジスタに返す値とその内容

内容
0処理が正常に終了した。
-1OPENモードが1/2/3以外。
-2排他モードが0/1/2/3以外。
-3OPENモードが2のとき,排他モードが0または2でない。
-4フラグが0/128以外(CBLSTMREADサービスルーチン),または0以外
(CBLSTMWRITEサービスルーチン)。
-5相対位置に指定された値が最大値を超えている。
-6読み書きするバイト数に指定された値が最大値を超えている。
-7ファイル名の長さが最大値を超えている。
-8ファイル名の指定がない。
-9ファイルハンドルに指定された値が正しくない。
  • CBLSTMCREATEサービスルーチン,またはCBLSTMOPENサービスルーチンの場合,0でない。
  • CBLSTMREADサービスルーチン,CBLSTMWRITEサービスルーチン,またはCBLSTMCLOSEサービスルーチンの場合,CBLSTMCREATEサービスルーチン,またはCBLSTMOPENサービスルーチンで返される値ではない。
10ファイルの終わりに達した。
30ファイルの範囲を超えて読み込もうとした。
34指定したファイルサイズが上限に達した。
35ファイルが存在しないときCBLSTMOPENサービスルーチンを実行しようとした。
37指定されたファイルではCBLSTMCREATEサービスルーチンまたはCBLSTMOPENサービスルーチンに書かれたモードは使用できない。
47読み込み専用または読み込み/書き出しモードで開かれていないファイルに対してCBLSTMREADサービスルーチンを実行しようとした。
48書き出しまたは読み込み/書き出しモードで開かれていないファイルに対してCBLSTMWRITEサービスルーチンを実行しようとした。
90入出力エラーが発生した。
93ファイルはすでに使用されている。