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
CTRL
even to send; eitherPHP_WINDOWS_EVENT_CTRL_C
orPHP_WINDOWS_EVENT_CTRL_BREAK
. -
pid
-
The ID of the process to which to send the event to. If
0
is 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 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]); } ?>
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
© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/function.sapi-windows-generate-ctrl-event.php