CBLARGVサービスルーチンは,コマンド行に指定した引数の内容を,引数2の領域に転送するものです。コマンド引数の内容は,C言語のmain関数で受け取るargvに該当します。
CALL 'CBLARGV' USING 引数1 引数2
DATA DIVISION.
WORKING-STORAGE SECTION.
01 PARM.
02 PARM-LENGTH PIC 9(4) USAGE COMP. …1.
02 PARM-AREA.
03 PARM-AREA-DETAIL PIC X(1)
OCCURS 1 TO 100 TIMES …2.
DEPENDING ON PARM-LENGTH.
IDENTIFICATION DIVISION.
:
DATA DIVISION.
WORKING-STORAGE SECTION.
77 ARGC PIC 9(9) USAGE COMP.
77 COUNTER PIC 9(9) USAGE COMP.
:
01 PARM. …1.
02 PARM-LENGTH PIC 9(4) USAGE COMP. …2.
02 PARM-AREA. …3.
03 PARM-AREA-C PIC X(1)
OCCURS 1 TO 100
DEPENDING ON PARM-LENGTH.
:
PROCEDURE DIVISION.
:
CALL 'CBLARGC' USING ARGC.
IF RETURN-CODE NOT = 0 THEN
CBLARGC異常時の処理
END-IF.
:
MOVE 1 TO COUNTER.
PERFORM UNTIL ARGC = 0
MOVE SPACES TO PARM-AREA
CALL 'CBLARGV' USING COUNTER PARM
IF RETURN-CODE NOT = 0 THEN
CBLARGV異常時の処理
END-IF
CBLARGVで受け取ったパラメタに対応する処理
ADD 1 TO COUNTER
SUBTRACT 1 FROM ARGC
END-PERFORM.
: