Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (16 – Функция fork, часть 3)

предыдущая часть ««»» следующая часть

Каждая группа процессов имеет уникальный идентификатор, который обычно совпадает с идентификатором процесса общего предка. Это значение можно получить путем вызова функции getpgrp().

$processid = getpgrp($pid);

Функция getpgrp() возвращает идентификатор группы процессов для процесса, указанного параметром $pid. Если в вызове этой функции PID не указан, она возвращает идентификатор группы процессов для текущего процесса. Эта функция будет полезна во многих случаях и на ней лежит не малая ответственность, как, например, для кого-то выполнение заказа на газосиликатные блоки .

 

Каждый член группы процессов разделяет все дескрипторы файлов, которые были открыты к тому моменту, как его родительский процесс выполнил ветвление. В частности,  они имеют доступ к одним и тем же дескрипторам файлов STDIN,'STDOUT и STDERR. Эта ситуация может измениться, если один из дочерних процессов закроет дескриптор файла или переоткроет его с каким-то другим источником данных. Однако система следит затем, в каких дочерних процессах открыты дескрипторы файлов, и не закроет файл до тех пор, пока последний дочерний процесс не закроет свою копию дескриптора файла.

При типичном ветвлении, перед ветвлением происходит вывод на устройство вывода значения PID, хранящегося в переменной $$ . Затем выполняется функция fork(), и результат записывается в переменную $child. Если результат является неопределенным, значит, выполнение функции fork() завершилось неудачей, поэтому можно вызвать  функцию die с сообщением об ошибке.

 

Затем происходит проверка значения переменной $child для определения того, выполняется ли родительский или дочерний процесс. Если значение $child отлично от нуля, значит, выполняется родительский процесс. На печать выводится значение PID этого процесса и содержимое переменной $child, которая содержит PID дочернего процесса. Если значение $child равно нулю, выполняется дочерний процесс.



2013-09-23 13:50:01

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2025 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония