バイトストリーム入出力サービスルーチンの使用例を次に示します。
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE1.
:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FILE-NAME PIC X(255) VALUE '/sample/file.dat'.
01 RSV PIC X COMP-X VALUE 0.
01 PARM PIC X COMP-X VALUE 0.
01 OPEN-MODE PIC X COMP-X VALUE 2.
01 EXCLUSION-MODE PIC X COMP-X VALUE 0.
01 HANDLE PIC X(4) COMP-X VALUE 0.
01 DATA-START PIC X(8) COMP-X.
01 DATA-LENGTH PIC X(4) COMP-X.
01 BUF PIC X(128) VALUE ALL '*'.
:
PROCEDURE DIVISION.
* バイトストリーム処理用のファイルを書き出しモードで開く
CALL 'CBLSTMOPEN'
USING FILE-NAME OPEN-MODE EXCLUSION-MODE RSV HANDLE.
IF (RETURN-CODE NOT = 0) THEN
* エラー処理
:
END-IF.
:
* ファイルの先頭を0とする相対位置63(64バイト目)から
* 128バイトの長さのデータを書き出す
MOVE 63 TO DATA-START.
MOVE 128 TO DATA-LENGTH.
CALL 'CBLSTMWRITE'
USING HANDLE DATA-START DATA-LENGTH PARM BUF.
IF (RETURN-CODE NOT = 0) THEN
* エラー処理
:
END-IF.
:
* ファイルを閉じる
CALL 'CBLSTMCLOSE' USING HANDLE.
IF (RETURN-CODE NOT = 0) THEN
* エラー処理
:
END-IF.
STOP RUN.
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE1.
:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FILE-NAME PIC X(255) VALUE '/sample/file.dat'.
01 RSV PIC X COMP-X VALUE 0.
01 PARM PIC X COMP-X VALUE 0.
01 OPEN-MODE PIC X COMP-X VALUE 2.
01 EXCLUSION-MODE PIC X COMP-X VALUE 0.
01 HANDLE PIC X(8) COMP-X VALUE 0.
01 DATA-START PIC X(8) COMP-X.
01 DATA-LENGTH PIC X(4) COMP-X.
01 BUF PIC X(128) VALUE ALL '*'.
:
PROCEDURE DIVISION.
* バイトストリーム処理用のファイルを書き出しモードで開く
CALL 'CBLSTMOPEN'
USING FILE-NAME OPEN-MODE EXCLUSION-MODE RSV HANDLE.
IF (RETURN-CODE NOT = 0) THEN
* エラー処理
:
END-IF.
:
* ファイルの先頭を0とする相対位置63(64バイト目)から
* 128バイトの長さのデータを書き出す
MOVE 63 TO DATA-START.
MOVE 128 TO DATA-LENGTH.
CALL 'CBLSTMWRITE'
USING HANDLE DATA-START DATA-LENGTH PARM BUF.
IF (RETURN-CODE NOT = 0) THEN
* エラー処理
:
END-IF.
:
* ファイルを閉じる
CALL 'CBLSTMCLOSE' USING HANDLE.
IF (RETURN-CODE NOT = 0) THEN
* エラー処理
:
END-IF.
STOP RUN.