- 締切済み
Cで他のプログラムを起動させる命令
C言語でプログラムを作っているのですが、他のプログラムを起動させる命令が分かりません。そのプログラムが起動し、処理が終わった後は起動させたプログラムの作業に戻るようにしたいです。 後、引数もプログラムに渡したいです。 何かいい命令を知っている方はお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- DT200
- ベストアンサー率38% (63/164)
fork & exec - wait で実現できます。大まかな流れは以下のとおりです。 pid_t pid; int status; char *prm[ NUM ]; /* プロセスを複製する(自分自身の分身を作る) */ pid = fork(); if( pid == 0 ){ /* 子プロセスのルートはこっち * プログラムのパスとパラメータを設定する */ prm[ 0 ] = programname; prm[ 1 ] = param1; prm[ 2 ] = param2; : prm[ n ] = NULL; /* プログラムを実行 */ execv( programname, prm ); } else if( pid > 0 ){ /* 親プロセス(元のプロセス)のルートはこっち * 子プロセスの終了を待つ * 子プロセスが実行した exit() に与えた値が status に設定される * ただし、そのままの値ではないので注意 */ wait( &status ); } else{ perror( "fork" ); } execv と wait は派生した別のものがあります。基本は同じですが目的によって 使い分けてください。