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
Description
sapi_windows_generate_ctrl_event
( int $event
[, int $pid = 0
] ) : bool
Sends a CTRL event to another process in the same process group.
Parameters
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.
Return Values
Returns TRUE on success or FALSE on failure.
Examples
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]);}?>
See Also
- proc_open() - Execute a command and open file pointers for input/output
- sapi_windows_set_ctrl_handler() - Set or remove a CTRL event handler