Приведенный выше код создает новый процесс, когда он выполняет вызов fork, этот процесс будет почти точной копией исходного процесса. Оба процесса будут продолжаться по отдельности в форме возврата, вызов fork, в связи с чем возникает вопрос: «Как узнать, новый ли это процесс или старый?». так как они почти идентичны. Для этого разработчики вил заставили вызов fork возвращать разные вещи в каждом процессе, в новом процессе (дочернем) вызов fork возвращает 0, а в исходном процессе (родительском) fork возвращает идентификатор нового процесса, чтобы родитель мог взаимодействовать с ним.
Таким образом, в коде вызов fork создает дочерний процесс, оба процесса выполняют оператор if отдельно. В родителе возвращаемое значение не равно нулю, поэтому родитель выполняет оператор if. У дочернего элемента возвращаемое значение равно 0, поэтому он выполняет оператор else. Надеюсь, это поможет: -)