Understanding fork() system call for new process creation