Voting

: min(nine, nine)?
(Example: nine)

The Note You're Voting On

John Wehin
17 years ago
STDIN STDOUT example
test.php

<?php
$descriptorspec
= array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("pipe", "r")
);
$process = proc_open('php test_gen.php', $descriptorspec, $pipes, null, null); //run test_gen.php
echo ("Start process:\n");
if (
is_resource($process))
{
fwrite($pipes[0], "start\n"); // send start
echo ("\n\nStart ....".fgets($pipes[1],4096)); //get answer
fwrite($pipes[0], "get\n"); // send get
echo ("Get: ".fgets($pipes[1],4096)); //get answer
fwrite($pipes[0], "stop\n"); //send stop
echo ("\n\nStop ....".fgets($pipes[1],4096)); //get answer

fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
$return_value = proc_close($process); //stop test_gen.php
echo ("Returned:".$return_value."\n");
}
?>

test_gen.php
<?php
$keys
=0;
function
play_stop()
{
global
$keys;
$stdin_stat_arr=fstat(STDIN);
if(
$stdin_stat_arr[size]!=0)
{
$val_in=fread(STDIN,4096);
switch(
$val_in)
{
case
"start\n": echo "Started\n";
return
false;
break;
case
"stop\n": echo "Stopped\n";
$keys=0;
return
false;
break;
case
"pause\n": echo "Paused\n";
return
false;
break;
case
"get\n": echo ($keys."\n");
return
true;
break;
default: echo(
"Передан не верный параметр: ".$val_in."\n");
return
true;
exit();
}
}else{return
true;}
}
while(
true)
{
while(
play_stop()){usleep(1000);}
while(
play_stop()){$keys++;usleep(10);}
}
?>

<< Back to user notes page

To Top