Я предполагаю, что вызов wait () на самом деле никогда не нужен и используется как инструмент обработки ошибок
Не совсем.
система ожиданиявызовы необходимы, когда родительский процесс должен знать, когда завершается дочерний процесс.
Например, в одном из моих проектов у меня было требование разрешить одновременный запуск подзадач n .То, что я сделал, породило подзадачу с помощью вилки.Затем создайте поток, который выполнил waitpid для ожидания завершения порожденной подзадачи, чтобы регулировать поток параллельных n подзадач.
Вы можете проверить здесь какфорк и waitpid использовались для удовлетворения ограничения планировщика задач.