アップデータ アプリケーションで新しいバージョンのアプリケーションを起動し、終了できるようにしたいと考えています。
「システム」経由で新しいアプリケーションを呼び出す「通常」を試してみると、アップデーターが終了しません。
考え?
別のプロセスを作成して実行する Windows の CreateProcess の行に沿ったものが必要になります。呼び出しは、入力したコマンドが終了するのsystem
を待ってから戻ります。
Windows ではCreateProcessを調べ、Unix ではexecを調べます。マクロを使用して、OS 固有のコードのラッパーを作成します。
関数の exec ファミリは、現在のプロセスを新しいプロセスに置き換えます。フォーク後に子から呼び出されない場合、これによりプログラムが新しいものに置き換えられます。
システムは fork を呼び出し、子でシェルを実行し、その戻りを待ちます。これが、アップデーターが終了しない理由です。
man 3 exec および man 3 system を参照してください。