SEND − 運用コマンドの実行
- 〈このページの構成〉
形式
DATA DIVISION(通信記述項)の指定
CD 通信記述名 FOR {OUTPUT|I-O} COMMAND 〔STATUS KEY IS データ名1〕. 01 一意名1. 02 データ名2 PIC 9(4) COMP. 02 データ名3 PIC X(2) VALUE LOW-VALUE. 02 データ名4 PIC X(n). 01 一意名2. 02 データ名5 PIC 9(4) COMP. 02 データ名6 PIC X(2) VALUE LOW-VALUE. 02 データ名7 PIC X(n).
PROCEDURE DIVISION(通信文)の指定
SEND 通信記述名 FROM 一意名1 〔BEFORE RECEIVING MESSAGE INTO 一意名2〕.
機能
次に示すCALLインタフェースの機能を実現します。
-
CBLDCADM('COMMAND ') 運用コマンドの実行
DMLでコマンドを実行する場合,CALLインタフェースでコマンドを実行するときと,次の点が異なります。
-
コマンドの処理結果のうち,標準エラー情報だけをリターンします。標準出力へ出力する文字列(例えば,表示コマンド(〜lsなど)の実行結果)は受け取れません。標準出力へ出力する文字列を受け取りたい場合は,CALL文のコマンドの実行を使ってください。
-
標準出力へ出力するコマンドを実行した場合は,シェルの終了コードが0でも,ステータスコードは00000にはなりません。
-
FOR句に OUTPUT COMMANDを指定した文を使った場合に標準エラー出力へ出力データがあった場合は,標準エラー出力のデータが,領域に入り切らなかった旨のステータスコード(「01804」,または「01805」)をリターンします。
通信記述項に設定する項目
通信文に指定する項目
ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
シェルの終了コードは0(コマンドの実行が正常終了)です。FOR句にI-O COMMANDを指定している場合は,標準エラー出力の文字列を格納しました。 |
01801 |
シェルの終了コードは0以外(コマンドの実行が異常終了)です。FOR句にI-O COMMANDを指定している場合は,標準エラー出力の文字列を格納しました。 |
01802 |
データ名に設定した値が間違っています。一意名1,一意名2に設定した領域長の指定や,0と設定する必要がある個所などに誤りがないか確認してください。 |
01803 |
標準出力への出力がありました(コマンドを実行するSEND文では,標準出力の文字列は受け取れません)。 |
01804 |
標準エラー出力のデータが,領域に入り切りませんでした。 |
01805 |
標準出力への出力があり(コマンドを実行するSEND文では,標準出力の文字列は受け取れません),かつ標準エラー出力のデータが,領域に入り切りませんでした。 |
01806 |
システムコール(close,pipe,dup,またはread)に失敗しました。 |
01807 |
CBLDCRPC('OPEN ')を呼び出していません。 |
01808 |
メモリが不足しました。 |