フォークはすでにコードで発生しています:
if (pid == 0) {
printf("I am child PID %d\n", getpid());
exit(EXIT_SUCCESS);
} else {
pid_t child;
int status;
//need wait() function that gets child pid and exit status
printf("Child PID %d terminated with return status %d\n", child, status);
}
コードでコメントされているように、子が終了するのを待って、子のPIDと結果の終了ステータスコードを取得する適切な待機関数が必要です。ありがとう!