O novo processo será criado dentro da chamada fork() e começará retornando como o pai. O valor de retorno (que você armazenou em retval ) de fork() será:
- 0 no processo filho
- O PID do filho no processo pai
- -1 no pai se houve uma falha (não há filho, naturalmente)
Seu código de teste funciona corretamente; armazena o valor de retorno de fork() em child_pid e usa if para verificar se é 0 ou não (embora não verifique um erro)