15.3 使用例

バイトストリーム入出力サービスルーチンの使用例を次に示します。

UNIX32の場合

 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.

HP-UX(IPF64),AIX(64),Linux(x64)の場合

 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.