c-如何知道vfork函数中的父进程或子进程



我想知道我们是否使用vfork,我们如何知道子进程或父进程,因为资源是共享的。更具体地说,假设以下代码:

int main()
{
    int pid = vfork();
    if(pid == 0)
    {
       // code for child
     }
    else 
    {
       // code for parent
    }
    return 0;
}

在上面的代码中,如果资源是共享的,那么pid变量将具有uniqe值,那么这个代码有效吗,因为我看到了一些例子,它们是按照上面的代码来做的。

vfork()挂起父级,直到子级调用exec*()_exit()

以这种格式使用vfork()就像我们使用fork()一样,会导致程序在无限循环中运行。它没有结束
阅读本讨论以更好地了解使用vfork()

在vfork中,父级将等待子级完成,因此不需要区分。

这个代码有效吗?

是的。vfork()仍然会复制父进程(概念上(,并且像正常的fork()一样,在子进程中它将返回0,在父进程中返回该子进程的pid。

相关内容

  • 没有找到相关文章