C - значение ожидания (NULL) при параллельном выполнении fork ()

В приведенном ниже коде вилки действительно работают параллельно или один за другим?

Каково значениеwait(NULL) ?

(Программа создает n дочерних процессов, n передается через командную строку)

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);
        }
    }
}