Что наследует процесс
При создании процесса с помощью одного из трех описанных выше примитивов, он наследует многое от той программной среды, в которой выполнялся его "родитель". Конкретная информация представлена в следующей таблице.
Что наследуется | fork() | exec() | spawn() |
Идентификатор процесса | Нет | Да | Нет |
Открытые файлы | Да | На выбор* | На выбор |
Блокировка файлов | Нет | Да | Нет |
Задержанные сигналы | Нет | Да | Нет |
Маска сигнала | Да | На выбор | На выбор |
Игнорируемые сигналы | Да | На выбор | На выбор |
Обработчик сигналов | Да | Нет | Нет |
Переменные среды | Да | На выбор | На выбор |
Идентификатор сеанса | Да | Да | На выбор |
Группа процесса | Да | Да | На выбор |
Реальные идентификаторы | Да | Да | Да |
Группы и пользователя ( UID, GID ) Эффективные UID, GID |
Да | На выбор | На выбор |
Текущий рабочий каталог | Да | На выбор | На выбор |
Маска создания файлов | Да | Да | Да |
Приоритет | Да | На выбор | На выбор |
Метод планирования | Да | На выбор | На выбор |
Виртуальные каналы | Нет | Нет | Нет |
Символические имена | Нет | Нет | Нет |
Таймеры реального времени | Нет | Нет | Нет |
Примечание. * - вызывающий процесс может по необходимости выбрать - да или нет. |