mm Si dices que tu aplicación te genera ese archivo "binario" al llamarlo en un archivo .. usando System() o exec() te sobraría ..
Si quieres llamar a tu aplicacion (ese .exe) y entregar el dato directamente al navegador (como ahí dice pasandole la cabecera adecuada al formato MIME que seá el archivo que ha generado esa aplicacion externa) .. ahí te combiene passthru() ..
No sé cuando te refierea a que "genera un archivo de texto" .. si está codificado en algún formato gráfico o mejor dicho "binario" o simplemente genera un archivo en el servidor que luego tu lo abres con PHP..
Si tu archivo genera directamente un ".gif" (binario) .. puedes llamarlo así:
Código PHP:
<?
$program_execution="c:\web\cmmo\Tool\prueba.exe 1 >
c:\web\cmmo\Tool\log.txt";
// cabecera HTTP para indicar que lo que vas a entregar al navegador está codificado como formato MIME: GIF
header("Content-type: image/gif");
passthru ($program_execution);
?>
Ojo que al usar cabeceras HTTP, NO ha de existir náda más de HTML (ni salto de línea o espacios antes del primer <? .. ) y por las propiedades de la cabecera usada .. ha de llamarse de forma individual (nada de echo "algo" por abajo del passthru() ..)
Si no te quieres complicar con esa función (la verdad que hay poca documentación y ejemplos de uso en el própio manual oficial de PHP ...) puedes usar system() por ejemplo o exec() y abrir el archivo con readfile() previo envio de las cabeceras (header() ..) mencionadas de "Content-type: ...." ...
Un saludo,