При успехе fork()
PID дочернего процесса возвращается в родительском, а 0 возвращается в дочернем. В случае неудачи возвращается -1 в родительском элементе, дочерний элемент не будет создан (из man-страницы fork).
Таким образом, fork()
также может завершиться ошибкой. Таким образом, ваша программа в случае успеха напечатает 4 строки (дочерний элемент выведет «C1H2I3L4D \ n», а родительский - «hello1 \ n», «helloh \ n», «helloqq \ n»).
Вкл В случае неудачи он напечатает только 3 строки «hello1 \ n» перед вызовом fork и «helloh \ n», «helloqq \ n» после ответвления (из родительского процесса и потомка не будет создано).
если у вас все еще есть сомнения, откройте терминал и введите man fork
. Посмотрите на возвращаемое значение.