I know that fork() returns differently for the child and parent processes, but I'm unable to find information on how this happens. How does the child process receive the return value 0 from fork? And what is the difference in regards to the call stack? As I understand it, for the parent it goes something like this:
parent process–invokes fork–>system_call–calls fork–>fork executes–returns to–>system_call–returns to–>parent process.
What happens in the child process?