от
Из того что я читал о системе
fork()
звонок Система вилки использовать для вызов создает новый процесс, который называется дочерний процесс, который проходит параллельно с родительским процессом После создания нового дочернего процесса, оба процесса будут выполняться следующая инструкция после вызова Fork() системный вызов
fork()
возвращает 0 для дочернего процесса
fork()
возвращает идентификатор процесса вновь созданного дочернего процесса родительскому процессу (положительное значение)
fork()
возвращает отрицательное значение, если создание дочернего процесса не В этот кусок кода
void foo() { 
if (fork() == 0) 
    printf("Hello from Child!\n"); 
else 
    printf("Hello from Parent!\n"); 
} 

int main() { 
    foo(); 
    return 0; 
} 
Выход
Hello from Parent!
Hello from Child!
Дочерний процесс создается, когда контроль был в состоянии
if функции foo в основной процесс.

Так откуда (которая инструкция) Процесс ребенок начнет выполнять?

Как можно видеть из вывода, Hello from Parent
печатается, когда
fork()
возвращает
0
. Так что от моего понимания
Hello from Parent
был фактически напечатан дочерний процесс
fork()
возвращается положительное значение для родительского процесса и родительского процесса печатные
Hello from Child
. Я понимаю об этом правильно? И от какой конкретно инструкция дочерний процесс приступили к выполнению? Вызов функции
fork()
было дано в разделе Состояние
if. Поэтому ребенок должен был начать выполнение после этого if, но что-то не то происходит?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.
...