0

私の質問は、実行時に親スタックに何が起こるかです?

main()
{
    f();
    g();
}
f()
{
   vfork();
}
g()
{ 
    int blast[100],i;
    for(i=0;i<100;i++)
        blast[i]=i;
}
4

2 に答える 2

3

動作はhttp://pubs.opengroup.org/onlinepubs/009695399/functions/vfork.htmlに従って未定義です

vfork() によって作成されたプロセスが [...] vfork() が呼び出された関数から戻る場合、動作は未定義です [...]

于 2011-11-20T11:46:17.140 に答える
-2

実際にvforkは、もはやあまり役に立ちません。Linux 用のvfork の manページを読んでください。POSIX.1-2008 では vfork() の仕様が削除されていると書かれています。動作は実質的に for とほぼ同じですfork(親が中断されていることを除いて)。だから私は、実際にvforkは今日とほぼ同じだと確信してforkいます。しかし、過去 10 年間に私が読んだすべてのプログラムは使用されてforkいませんでしたvfork(書き込みページング動作の遅延コピーが今日十分に効率的であるため)。

于 2011-11-20T11:57:29.617 に答える