SYSTEM

指定されたコマンド ラインをシステムのシェルに渡して実行させます。

構文
#include <sys/wait.h>

int SYSTEM (const unsigned char *cmd);
パラメーター
cmd シェルに実行させるコマンド ライン。末尾が NULL の文字列です。
備考

C の system() ライブラリ ルーチンと同様、指定されたコマンド ラインをシェルに渡して実行させます。

COBOL 端末は呼び出し前にシェルモードにリセットされ、呼び出し後に復元されます。

COBOL 環境はシェルや SYSTEM() で実行されるコマンドなど、他のプロセスによる出力を関知しません。そのため、SYSTEM() では画面の更新を伴う処理を実行しないようにする、または呼び出し後に画面を更新する必要があります。

このルーチンの戻り値は、C の system() ライブラリ ルーチンと同じ形式です。C ライブラリのインクルードファイル <sys/wait.h> には、実行されたコマンドの戻り値を取得し、その値を操作するマクロが定義されています。詳細については、使用しているシステムのマニュアルを参照してください。

同等な COBOL 構文
CALL "CBL_EXEC_RUN_UNIT" USING ...
使用例

次のコード例はファイルをコピーして標準出力と標準エラーをエラーファイルにリダイレクトし、コマンドのリターンコードを表示します (実行後にエラーファイルを開くと、コマンドで生成された出力が確認できます)。

int res;

res = SYSTEM("cp f1 f2 > errfile 2>&1");

if (WIFEXITED(res))
    cobprintf("Exit status: %d\n", WEXITSTATUS(res));