This is a question from recent GATE entrance exam.
A process executes the code
fork();
fork();
fork();
The total number of child processes created is
(A) 3. (B) 4. (C) 7. (D) 8.
My answer was (A) 3.
My view is that after each fork(), 1 child process will be created and execution of parent will continue normally.
Unreliable answer (without any explanation) from coaching institutes were (C) 7.
I think they are treating that each fork will create a child process and a new parent process. And they are counting all the parent process as well. [I am not allowed to post image but my friend explained in a diagram, a tree with each left node forking down in two nodes. Therefore 4 parent node in left and 3 child node in right.] But the Question clearly mentions child process only. And also I don't think that parent process is newly created in forking.
Can someone explain some forking fundamentals, and a proper solution to above question please.
P.S. If programming language make any difference in concept of forking, then as per syllabus, this should be either C or C++ program.
fork()
results in both the original process and one child to start from that point in the code. Therefore you have this picture: