Ben proc_open çağırarak ediyorum () ve stderr'e yazılı sürecin çıkış yakalamak edemez:
$curFolder = getcwd();
$procDescriptor = array( 2 => array( "pipe", "w" ) );
$cmd = "MyApp.exe -f optimization.csv";
$process = proc_open( $cmd, $procDescriptor, $pipes, $curFolder );
if( is_resource( $process ) == true )
{
$procStatus = proc_get_status( $process );
while( $procStatus['running'] === true )
{
if( !feof( $pipes[2] ) )
{
$logLine = fgets( $pipes[2] );
echo( "Read >${logLine}<" );
}
sleep( 1 );
}
}
Programı) (fgets asılı. Ben komut satırından, her eser, yani gelen programı çalıştırırsanız orada stderr'e yazılı bir şeydir (ve ben de aynı sonucu ile stdout kullanarak denedim). Ben Windows komut dosyası koşuyorum - Linux üzerinde aynı komut dosyası sorunsuz çalışır.