Задать вопрос
woonem
@woonem

Имеет ли дочерний процесс вывод в браузер?

<?php
echo 'This may be displayed'; //это должно отображаться

$pid = pcntl_fork();
if ($pid == -1) die('error');
if ($pid ==  1) exit();
posix_setsid();

echo 'This not may be displayed'; //это не должно отображаться
?>

Правильно?
  • Вопрос задан
  • 178 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
NTP
@NTP
Алфавитный быть во всем должен порядок!
Правильно?

Нет. Перевод неверный. 'This may not be displayed' - 'Это может не отобразиться'. Вывод будет в двух случаях:
1. Возникла ошибка при форке и $pid равен -1
2. Выполнение родительского процесса, где $pid равен 0
При таких значениях $pid не будет выполнено условие для вызова функции exit() и исполнение пойдет дальше. Соответственно, следуя логике примера, дочерний процесс не выведет второе сообщение, поскольку его $pid больше нуля, что интерпретатором воспринимается как true.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
Чтооо?! Насколько мне известно, эти функции должны запускаться ТОЛЬКО в консольном режиме...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы