30.4.6 CBLEXEC
CBLEXECサービスルーチンは,COBOLプログラムから別のアプリケーションプログラムを起動するものです。
- 形式
CALL 'CBLEXEC' USING 引数1 引数2 引数3
- 引数
-
-
引数1には,プロセス起動するコマンド文字列の長さを,2バイトの2進項目で指定します。指定できる長さは1〜255バイトです。
-
引数2には,プロセス起動するコマンド文字列を指定します。この領域中にシステムが認識できないコードがある場合の結果は保証しません。
-
引数3には,次に示すインタフェース領域の名前を指定します。
表30‒2 CBLEXECサービスルーチンのインタフェース領域 記述形式
内容
01 データ名1.
CALL文のUSINGで指定するインタフェース領域の名前を指定する。
02 FILLER PIC X(01).
システムの使用する領域。値はX'00'でなければならない。
02 データ名2 PIC X(01).
起動したプロセスの終了を待つかどうかを指定する。
0:プロセスの終了を待つ。
1:プロセスの終了を待たない。
02 データ名3 PIC X(01).
起動したプロセスのウィンドウ表示方法を指定する。
0:プロセスのデフォルトウィンドウ表示とする。
1:ウィンドウをアイコン化して表示する。
02 FILLER PIC X(01).
予備。値は0でなければならない。このシステムではこの領域は使用しない。
-
- 戻り値
-
0:正常に起動し,プロセスの終了を待たない場合
(正常に起動し,プロセスの終了を待つ場合は,呼び出したコマンドの戻り値がそのまま返ります)
-1:起動できなかった場合
- 規則
-
-
引数2の実際の長さより引数1中の長さが長い場合は,結果は保証しません。
-
引数2の実際の長さより引数1中の長さが短い場合は,引数1の長さまでがコマンド文字列とみなされます。
-
CBLEXECからCOBOLプログラムを呼び出したとき,プログラムの実行終了(STOP RUN文,実行時エラー)と同時にプロセスを終了させたい場合には,次の環境変数を設定します。
CBL_BATCH=1
-
CBLEXECを使って呼び出したCOBOL主プログラムで設定したRETURN-CODE特殊レジスタの内容は制御が戻ってきたときに参照できます。参照できる範囲は0〜255で,RETURN-CODE特殊レジスタの下位8ビットの内容です。
-
引数2に空白が含まれた実行可能ファイル名を指定した場合,CALL文のときと同様の注意が必要となります。詳細は,「18.7 実行可能ファイルの呼び出し」の注意事項を参照してください。
-
- 使用例
-
メモ帳を呼び出す例を次に示します。
IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE1. : DATA DIVISION. WORKING-STORAGE SECTION. 01 EXEC-NAME-LEN PIC 9(4) USAGE COMP VALUE 29. 01 EXEC-NAME PIC X(29) VALUE 'NOTEPAD.EXE C:\TMP\SAMPLE.TXT'. 01 EXEC-PARM. 02 FILLER PIC X(01) VALUE X'00'. 02 PROC-IND PIC X(01). 02 SHOW-WIND PIC X(01) VALUE '0'. 02 FILLER PIC X(01) VALUE '0'. : PROCEDURE DIVISION. : MOVE '1' TO PROC-IND. CALL 'CBLEXEC' USING EXEC-NAME-LEN EXEC-NAME EXEC-PARM. IF RETURN-CODE NOT = 0 THEN CBLEXECエラー処理 END-IF. :