C - significado de espera (NULL) ao executar fork () em paralelo

No código abaixo, os garfos realmente são executados em paralelo ou um após o outro?

Qual é o significado dewait(NULL) ?

(O programa cria um número n de processos filhos, n é fornecido via linha de comando)

int main ( int argc, char *argv[] ) {
    int i, pid;

    for(i = 0; i < atoi(argv[1]); i++) {
        pid = fork();
        if(pid < 0) {
            printf("Error occured");
            exit(1);
        } else if (pid == 0) {
            printf("Child (%d): %d\n", i + 1, getpid());
            exit(0); 
        } else  {
            wait(NULL);
        }
    }
}

questionAnswers(1)

yourAnswerToTheQuestion