why
int main(...) { fork(); printf("hello again\n"); exit(0); }
not create an infinite number of procedural? I understood it as follows: the main process creates a child process, the child another, etc.
Execution continues after fork in both the parent and the child; it does not restart the program.
The parent process is "cloned" right at the execution point where fork() is called, and both processes go from there. The child process does not start by calling main () again.
fork()