Rational Developer for System z バージョン 7.6.1

COBOL サンプル・プログラムの環境変数へのアクセス

実行時に、環境変数の値を動的に検索する必要がある場合があります。このトピックでは、環境変数にアクセスする方法の 1 つを示す簡単な COBOL サンプルを提供します。

  1. z/OS® プロジェクト・パースペクティブへの切り替えを行います。
  2. ワークステーション COBOL または PL/I プロジェクトを作成します。新規プロジェクト・ウィザードで、「新規プロパティー・グループを作成して、それをプロジェクトに関連付ける」のオプションを選択します。
  3. プロパティー・グループを編集し、「カテゴリー」タブで「ローカル COBOL 設定」、「ローカル PL/I 設定 (Local PL/I Settings)」、および「リンク・オプション」チェック・ボックスを選択します。これらのページでデフォルト値を受け入れ、プロパティー・グループを保存します。
  4. プロジェクト内に Cblenv.cbl という COBOL プログラムを作成し、ファイルに以下のサンプル・コードを貼り付けます。
           Identification Division.
           Program-ID. Cblenv.
    
           Data Division.        Working-Storage Section.        01 P pointer.
           01 ENVVAR pic x(32) value Z"PATH".
           01 P2 POINTER.
           01 ENVARSTG PIC X(1000).
           01 var-len pic 9(4) binary.       Procedure Division.
                 Set P to address of ENVVAR.
                 Set P2 to address of ENVARSTG.
           >>CALLINT OPTLINK
                      Call "XENVVAR"
                             using BY value P,
                             BY VALUE P2.
           >>CALLINT
                 Display "PATH = " ENVARSTG
                 	 Move 0 to var-len
                 Inspect ENVARSTG tallying var-len for characters
                  	 	before initial x"00"
                  Display "TRIMMED PATH = " ENVARSTG (1:var-len)
               Goback.
  5. プロジェクト内に XENVAR.pli という PL/I プログラムを作成し、ファイルに以下のサンプル・コードを貼り付けます。
    %process macro;
     %dcl OUTBUFSZ char;
     %OUTBUFSZ = '1000';
     XENVVAR: proc(xp,xp2) options (nodescriptor);
       dcl envar char(32) based (xp);
       dcl xp ptr byvalue;
       dcl xp2 ptr byvalue;
       dcl enval char(OUTBUFSZ);
       dcl venval char(OUTBUFSZ) varyingz;
       dcl envlen fixed bin(31);
     
       /****************************************************************/
       /* This on unit is necessary to trap any unhandled condition.   */
       /* It must also have the goto statement to get out of the unit. */
       /****************************************************************/
       on anycond
         begin;
          display('  XENVAR ====> error occurred '||oncode());
           goto goto_label;
         end;
       call plifill(xp2, '00'x, OUTBUFSZ);
       enval = getenv(xp->envar);
       venval = trim(enval);
       envlen = length(venval);
          /*enforce null terminated */
       IF envlen > (OUTBUFSZ - 1) THEN envlen = (OUTBUFSZ - 1);
       call pliover( xp2, addr(venval),envlen);
     goto_label:
      return ;
     end;
  6. Cblenv.cbl を右クリックし、「エントリー・ポイントとして指定」を選択します。このアクションによって、Cblenv.cbl でアイコンが変わり、COBOL プログラムがメインプログラムであることを示すようになります
  7. プロジェクトを再ビルドするには、プロジェクトを右クリックし、「プロジェクトを再ビルド」を選択します。 プロジェクトのビルド後に、BuildOutput という名前のフォルダーがプロジェクトに追加されます。そのフォルダーには、Cblenv.exe が含まれています。このファイルが生成されない場合は、「リモート・エラー・リスト」で報告されたコンパイル・エラーを修正し、プロジェクトを再ビルドしてください。リンク時に報告された未解決の参照がある場合、リンク・エラーを「リモート・コンソール」ビューで参照できます。

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)