Php/docs/function.sapi-windows-generate-ctrl-event

提供:Dev Guides
< Php
移動先:案内検索

sapi_windows_generate_ctrl_event

(PHP 7 >= 7.4.0)

sapi_windows_generate_ctrl_eventCTRLイベント を別プロセスに送信する


説明

sapi_windows_generate_ctrl_event ( int $event [, int $pid = 0 ] ) : bool

同じプロセスグループの別プロセスに CTRLイベント を送信する。


パラメータ

event
送信する CTRL イベント: PHP_WINDOWS_EVENT_CTRL_C または PHP_WINDOWS_EVENT_CTRL_BREAK
pid
イベントを送信するプロセスID。 0 に設定すると、プロセスグループに属する 全てのプロセスにイベントが送信されます。


返り値

成功した場合に true を、失敗した場合に false を返します。


例1 sapi_windows_generate_ctrl_event() 関数の基本的な使い方

以下の例は、 CTRL+BREAK イベントを子プロセスに送信する方法を示しています。 この場合、ユーザーが CTRL+BREAK を押すまで、 子プロセスは I'm still alive を1秒ごとに表示します。 CTRL+BREAK は、子プロセスのみを終了させます。


<?php// CTRL+BREAK イベントを子プロセスに送信するsapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event');// 1秒ごとに echo する子プロセスを生成$cmd = ['php', '-r', 'while (true) { echo "I\'m still alive\n"; sleep(1); }'];$descspec = array(['pipe', 'r'], ['pipe', 'w'], ['pipe', 'w']);$options = ['create_process_group' => true];$proc = proc_open($cmd, $descspec, $pipes, null, null, $options);while (true) {    echo fgets($pipes[1]);}?>

参考