Php/docs/function.sapi-windows-generate-ctrl-event
sapi_windows_generate_ctrl_event
(PHP 7 >= 7.4.0)
sapi_windows_generate_ctrl_event — 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- The
CTRLeven to send; eitherPHP_WINDOWS_EVENT_CTRL_CorPHP_WINDOWS_EVENT_CTRL_BREAK. pid- The ID of the process to which to send the event to. If
0is given, the event is sent to all processes of the process group.
返回值
成功时返回 true, 或者在失败时返回 false。
范例
Example #1 Basic sapi_windows_generate_ctrl_event() Usage
This example shows how to pass along CTRL+BREAK events to a child
process. In this case the child process echoes I'm still alive
every second, until the user presses CTRL+BREAK, what causes
only the child process to be terminated.
<?php// forward CTRL+BREAK events to the child processsapi_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