fork - порождает дочерний процесс
НАЗВАНИЕfork - порождает дочерний процесс
СИНТАКСИС
#include
#include
pid_t fork(void);
ОПИСАНИЕ
fork порождает дочерний процесс, который отличается от
родительского процесса только значениями PID
(идентификатора процесса) и PPID (идентификатора
родительского процесса), и значение счетчиков
использования ресурсов равно 0. Блокировки файлов и
сигналы, ожидающие обработки, не наследуются.
В Linux fork реализован с помощью метода "копирование
страниц при записи" (copy-on-write), поэтому расходы на
fork сводятся к копированию таблицы страниц родителя и
созданию уникальной структуры, описывающей задачу
порожденного процесса.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном завершении родительскому процессу
возвращается PID дочернего, а дочернему процессу
возвращается 0. При неудачном завершении родительскому
процессу возвращается -1, дочерний процесс не создается, а
в переменную errno записывается код ошибки.
КОДЫ ОШИБОК
EAGAIN fork не может получить достаточно памяти для
копирования таблиц страниц родителя и для выделения
структуры описания дочернего процесса.
ENOMEM fork не может получить необходимые ресурсы ядра,
т.к. недостаточно памяти.
СООТВЕТСТВИЕ СТАНДАРТАМ
Вызов fork соответствует SVr4, SVID, POSIX, X/OPEN, BSD
4.3.