I wonder if we use vfork, how do we know the child process or parent process since the resources are shared?
To be more specific, assume the following code:
int main()
{
int pid = vfork();
if(pid == 0)
{
// code for child
}
else
{
// code for parent
}
return 0;
}
In the code above, if the resources are shared, then the pid variable will have a unique value, so is this code valid? Since I have seen examples do things as the above code.
vfork() suspends the parent until the child either calls exec*() or _exit().
using vfork() in this format as we use fork() results in program run in infinite loop. it doesn't end.
read this discussion to get better idea about using vfork().