fork() (Что же всё-таки делает системный вызов fork?)

Модератор: Модераторы разделов

verbatium
Сообщения: 5

fork()

Сообщение verbatium »

Насколько я знаю, fork() служит для создания нового процесса. А чем отличаются контекст процесса-родителя от контекста процесса-ребёнка после выполнения fork(), ну кроме значений ppid и pid в таблице процессов?
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: fork()

Сообщение flook »

Ничем, кроме еще кода возврете из fork().
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
d_Sun
Сообщения: 291

Re: fork()

Сообщение d_Sun »

НАЗВАНИЕ
fork - создает дочерний процесс
ОБЗОР
#include <sys/types.h>
#include <unistd.h>

pid_t fork(void);
ОПИСАНИЕ
fork создает процесс-потомок, который отличается от родительского только значениями PID (идентификатор процесса) и PPID (идентификатор родительского процесса), а также тем фактом, что счетчики использования ресурсов установлены в 0. Блокировки файлов и сигналы, ожидающие обработки, не наследуются.

Под Linux fork реализован с помощью "копирования страниц при записи" (copy-on-write, COW), поэтому расходы на fork сводятся к копирования таблицы страниц родителя и созданию уникальной структуры, описывающей задачу.

З.Ы. 10 секунд поиска на www.opennet.ru! :angry:

З.Ы. / З.Ы. Поиск по форуму тоже рулит!
Моя подпись сильно длинная :)
Спасибо сказали: