sapi_windows_generate_ctrl_event()
(PHP 7 >= 7.4.0)
Send a CTRL event to another process
说明
sapi_windows_generate_ctrl_event(int $event[,int $pid= 0]): bool
Sends a CTRL event to another process in the same process group.
参数
- $event
TheCTRLeven to send;either
PHP_WINDOWS_EVENT_CTRL_C
orPHP_WINDOWS_EVENT_CTRL_BREAK
.- $pid
The ID of the process to which to send the event to.If0is given, the event is sent to all processes of the process group.
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
范例
Basicsapi_windows_generate_ctrl_event()Usage
This example shows how to pass alongCTRL+BREAKevents to a child process. In this case the child process echoesI'm still aliveevery second, until the user pressesCTRL+BREAK, what causes only the child process to be terminated.
<?php // forward CTRL+BREAK events to the child process sapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event'); // create a child process which echoes every second $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]); } ?>
参见
proc_open()
执行一个命令,并且打开用来输入/输出的文件指针。sapi_windows_set_ctrl_handler()
Set or remove a CTRL event handler