Как говорит Gnostus , функция fork () не возвращает двух значений.
То, что она делает, возвращает одно значение, как и все функции, но возвращается дважды.
Один раз в родительском процессе и один раз в дочернем.Родительский процесс получает идентификатор дочернего процесса, возвращенный ему, дочерний процесс получает 0 - недопустимый идентификатор процесса, поэтому код может сказать, что это дочерний процесс.
Дочерний процесс - это новый процесс, выполняющий тот же коднаходится в том же месте в коде, что и родитель, который его породил.
int cProcessID;
cProcessID = fork();
if (cProcessID == 0) {
// Child process
} else {
// Parent process
}