young
Новичок
Поведение Ctrl+C и его обработка
PS: все скрипты проверялись под FreeBSD PHP-cli v. 4.3.1
и касаются консольных скриптов
1. Возникло несколько вопросов по поведению Ctrl+C
Скрипт следующего характера
<?php sleep(100); ?>
при нажатии Ctrl+C завершает свою работу
Скрипт следующего характера
<?php
while (1) sleep(100);
?>
при нажатии Ctrl+C просто переходит на новую итерацию.
Почему так происходит?
2. Как корректно обработать нажатие Ctrl+C
Как я пониманию, в таком случае скрипту посылается сигнал SIGINT, который можно корректно обрабатывать при помощи pcntl_signal
но код
не работает, так как предполагалось бы
Где грабли?
-~{}~ 11.05.04 11:05:
Спасибо всем принявшим участие.
Проблема решалась добавлением declare(ticks=1);
Только теперь объясните мне, что это означает?
PS: все скрипты проверялись под FreeBSD PHP-cli v. 4.3.1
и касаются консольных скриптов
1. Возникло несколько вопросов по поведению Ctrl+C
Скрипт следующего характера
<?php sleep(100); ?>
при нажатии Ctrl+C завершает свою работу
Скрипт следующего характера
<?php
while (1) sleep(100);
?>
при нажатии Ctrl+C просто переходит на новую итерацию.
Почему так происходит?
2. Как корректно обработать нажатие Ctrl+C
Как я пониманию, в таком случае скрипту посылается сигнал SIGINT, который можно корректно обрабатывать при помощи pcntl_signal
но код
PHP:
<?php
function sigint() {
echo "Have a signal";
exit;
}
pcntl_signal(SIGINT, 'sigint');
sleep(100);
?>
Где грабли?
-~{}~ 11.05.04 11:05:
Спасибо всем принявшим участие.
Проблема решалась добавлением declare(ticks=1);
Только теперь объясните мне, что это означает?