Hi.

I have a simple questions for Linux programmers. I am a C++ programmers, but I have no experience working with multithreaded programming in Linux. I would like to understand fork().

For example, how many processes including main process does the following code produces?

Code:
// p -> one child process

int main()
{
fork();  // p 
fork(); // p 
fork(); // p
fork(); // p

return 0;
The code above will spawn a total of five processes including main. Is that accurate?

Secondly, I would like to know let say when you spawn a process using fork() I know the child-process will execute at that very instance and all the code after it. What if you spawn one child-process after another, does the total number of processes increases exponantially?

Lastly, if you spawn a child-process inside an if statement, will the child-process execute code outside of the if statement?

Code:
int main()
{
fork();

// If child-process, then execute.
// fork() returns 0 for the child-process.

if (!forker()_
{
...
}

cout << "will the child-process execute this line?";

return 0;
}
Thanks,
Kuphryn