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