Вызов fork создает новый процесс, идентичный существующему процессу, за исключением нескольких незначительных различий, таких как его pid, родительский pid. Исходный процесс происходит точно из того же места, и этот является родительским процессом. Что означает, что ваш вопрос в принципе не имеет смысла. Вы не создаете родительский процесс, исходный процесс становится родительским процессом после создания дочернего процесса.
Это немного похоже на вопрос: «Я создал ребенка, забеременев и рожая, но как мне создать родителей?» Вы автоматически являетесь родителем.
Вернуться к компьютерам ...
Когда вы выполняете fork, системный вызов возвращает pid дочернего элемента родительскому элементу и 0 дочернему элементу, поэтому у вас должен быть такой код:
int pid = fork();
if (pid == 0)
{
// in child, do child processing - normally exec an executable
}
else if (pid > 0)
{
// in parent, do some processing - often wait for child to complete
}
else
{
// fork failed - handle the error
}