COBOL2002 ユーザーズガイド
C言語インタフェースに従った形式でコマンド行に指定した引数を受け取る方法には,次の3種類があります。
それぞれの受け取り方法について,次に示します。
コマンド行から渡された引数の形式を連絡節(LINKAGE SECTION)で定義して,直接COBOLプログラムから参照する方法です。なお,引数の値は,アドレスとして渡されるため,アドレスデータ項目で参照する必要があります。
アドレスデータ項目を使った引数の受け取りの例
: IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE1. : DATA DIVISION. WORKING-STORAGE SECTION. …1. 01 CMDN-G ADDRESSED BY A-CMDN. 02 CMDN PIC X(8). 01 OPT1-G ADDRESSED BY A-OPT1. 02 OPT1 PIC X(8). 01 OPT2-G ADDRESSED BY A-OPT2. 02 OPT2 PIC X(8). : LINKAGE SECTION. …2. 01 ARGC PIC 9(9) USAGE COMP. 01 ARGV. 02 ARGV1 USAGE ADDRESS. 02 ARGV2 USAGE ADDRESS. 02 ARGV3 USAGE ADDRESS. : PROCEDURE DIVISION USING …3. BY VALUE ARGC BY REFERENCE ARGV. COMPUTE A-CMDN = ARGV1. COMPUTE A-OPT1 = ARGV2. COMPUTE A-OPT2 = ARGV3. :
CBLARGCサービスルーチンおよびCBLARGVサービスルーチンを呼び出して,引数を受け取る方法です。
CBLARGCサービスルーチンでコマンド行の引数の個数を取得し,引数の個数だけCBLARGVサービスルーチンを繰り返し呼び出すことで,すべてのコマンド行の引数を取得できます。
サービスルーチンを使った引数の受け取りの例
: IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE1. DATA DIVISION. WORKING-STORAGE SECTION. 01 ARGC PIC 9(9) USAGE COMP. …1. 01 ARGV. 02 ARGV-LENGTH PIC 9(4) USAGE COMP. …2. 02 ARGV-AREA. …3. 03 ARGV-AREA-C PIC X(1) OCCURS 1 TO 100 DEPENDING ON ARGV-LENGTH. 77 CMD-NO PIC 9(9) USAGE COMP. …4. : PROCEDURE DIVISION. CALL 'CBLARGC' USING BY REFERENCE ARGC. IF RETURN-CODE NOT = 0 THEN (CBLARGC異常時の処理) END-IF. : MOVE 1 TO CMD-NO. PERFORM UNTIL ARGC = 0 CALL 'CBLARGV' USING BY REFERENCE CMD-NO ARGV IF RETURN-CODE NOT = 0 THEN (CBLARGV異常時の処理) END-IF (CBLARGVで受け取った引数の処理) ADD 1 TO CMD-NO SUBTRACT 1 FROM ARGC END-PERFORM. :
ACCEPT文やDISPLAY文を使って,コマンド行に指定された引数の個数や値を取得できます。詳細は,「10.3 コマンド行へのアクセス」を参照してください。
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.