Путаница в реализации системной функции в Unix [дубликат]

Я чувствую, что, хотя это разрешено, это плохая практика, ее вроде бы оставляют последнюю половину двоеточия ваших функций и циклов.

1
задан Rick 19 March 2019 в 03:19
поделиться

1 ответ

Помимо завершения дочернего процесса, функция waitpid могла бы вернуться рано, если была прервана сигналом. Если это так, блок if не будет введен и попытка waitpid будет предпринята снова.

Без цикла, если waitpid прервано, вы окажетесь в состоянии, когда родительский процесс не ждет дочернего процесса, и вы получите процесс зомби, когда дочерний процесс действительно завершится. Этот зомби не будет очищен до тех пор, пока не выйдет родительский процесс, после чего процесс init становится родительским и автоматически ожидает зомби.

0
ответ дан dbush 19 March 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: