Основы операционных систем. Практикум

       

Системный вызов fork() (продолжение)


Для того чтобы после возвращения из системного вызова fork() процессы могли определить, кто из них является ребенком, а кто родителем, и, соответственно, по-разному организовать свое поведение, системный вызов возвращает в них разные значения. При успешном создании нового процесса в процесс-родитель возвращается положительное значение, равное идентификатору процесса-ребенка. В процесс-ребенок же возвращается значение 0. Если по какой-либо причине создать новый процесс не удалось, то системный вызов вернет в инициировавший его процесс значение -1. Таким образом, общая схема организации различной работы процесса-ребенка и процесса-родителя выглядит так:

pid = fork(); if(pid == -1){ ... /* ошибка */ ... } else if (pid == 0){ ... /* ребенок */ ... } else { ... /* родитель */ ... }



Содержание раздела