Функция fork() может применяться во всех версиях Perl, а также в версиях для VMS и OS/2. Версия 5.6 языка Perl обеспечивает поддержку функции fork() на платформах Microsoft Windows, но, к сожалению, не на Macintosh. Функция fork() языка Perl не принимает параметров и возвращает числовой код результата. После вызова функция fork() запускает на выполнение точную копию текущего процесса. Дубликат, называемый дочерним процессом, разделяет с родительским процессом текущие значения всех переменных, дескрипторы файлов (включай данные в стандартных буферах ввода-вывода) и другие структуры данных.
В действительности дублирующий процесс повторяет оригинальный процесс вплоть до того момента, как была вызвана функция forк(). Это можно сравнить с тем, как человек входит в кабинку для клонирования в научно-фантастическом фильме. Его копия, просыпаясь в соседней кабинке, помнит все, что происходило с оригиналом, вплоть до того момента, как он вошел в кабинку для клонирования. Это очень важно понимать, так же, как и грамотно подходить к элементам продвижения blog-craft.ru/kak-pravilno-pokupat-ssylki своего проекта.
Для обеспечения мирного сосуществования процессов необходимо, чтобы родительский и дочерний процессы знали, кто есть кто. С каждым процессом в системе связано уникальное положительное целое число, называемое идентификатором процесса, или сокращенно PID (process ID).
После вызова функции fork() родительский и дочерний процессы проверяют возвращаемое значение функций. В родительском процессе функция fork() возвращает PID дочернего процесса, в дочернем - числовое значение 0. После этого выполнение кода продолжается и предусматривает проведение одних действий в родительском процессе и других - в дочернем.