3
私のシステム(Opensuse)では、デフォルトで子プロセスはforkの後に常に最初に実行されます。また、子プロセスを最初に実行させる方法もあります。親プロセスを最初に実行する方法があるかどうかを知りたいですか?親プロセスを最初に実行するよう強制する
私のシステム(Opensuse)では、デフォルトで子プロセスはforkの後に常に最初に実行されます。また、子プロセスを最初に実行させる方法もあります。親プロセスを最初に実行する方法があるかどうかを知りたいですか?親プロセスを最初に実行するよう強制する
あなたはそれはOSとコンテキストの切り替え時間の種類によって異なり、この方法
pid_t pid = fork();
if (pid == -1)
abort();
else if (pid == 0)
{
raise(SIGSTOP); // stop the child
}
else
{
waitpid(pid, NULL, WUNTRACED); // wait until the child is stopped
kill(pid, SIGCONT); // resume the child
}
を使用することができます。 あなたが行うことができる唯一の方法は、親プロセスの後にCPUを得るように子プロセスでsleep(time)を書くことです。 – Anjaneyulu
そうでも、それでも子プロセスはsleep/sigsuspendを実行する必要があります。 – ram619
子が 'ptrace'を介して' SIGSTOP'ed状態で作成されるよう手配することができます。 – EOF