0
私はコマンドを実行する必要がありますが、それは終了するまでアプリケーションをロックしません。system()
のように機能します。これを行う方法?どんな助けもありがとうございます。前もって感謝します。コマンドを実行する方法とアプリケーションの終了を待つことはありませんか?
私はコマンドを実行する必要がありますが、それは終了するまでアプリケーションをロックしません。system()
のように機能します。これを行う方法?どんな助けもありがとうございます。前もって感謝します。コマンドを実行する方法とアプリケーションの終了を待つことはありませんか?
fork()
を使用して新しいプロセスを作成し、exec*()
を使用して新しいアプリケーションに置き換えます。
pid_t pid;
if ((pid = fork()) < 0)
...fork failed...
else if (pid == 0)
{
...create command line in array of char pointers argv...
...sort out I/O -- redirect stdin from /dev/null?...
execvp(argv[0], argv);
...report exec failed on stderr...
_exit(126);
}
...parent process...gets on with life...
親プロセスが終了すると、子プロセスにSIGHUPが送信されることに注意してください。子プロセスを継続したい場合、シグナル処理を使用してSIGHUPを無視するか、nohupを使用してプログラムを実行する必要があります。 – cdarke