Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Capturar el stdout

Iniciado por deadLock++, 02 de Enero de 2003, 02:54:44 PM

« anterior - próximo »

deadLock++

                                Debo utilizar una librería (no poseo los fuentes) donde una de sus funciones arroja un texto al stdout (supongo que hará un printf o un cout).

El tema es ¿como puedo capturar ese texto? ¿Es posible redireccionar el stdout a un stream definido por mí?

Muchas gracias.                                

BeRSeRKeR

                                No sé si esto hará lo que quieres pero tal vez te dé pistas de cómo hacerlo

http://www.beginthread.com/Article/dev.nul...nsole%20Output/

Saludos                                
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Xtrai2

                                SDL(almenos en windows) lo hcae, y redirecciona stdout a stdout.txt y stderr a stderr.txt. Podrias mirar el src, aunq supongo q como se trata de un fichero hara... no se q hara, pero podrias probar a fclose(stdout); y stdout = fopen("stdout.txt", "w"); pero no se si te dejara...                                
a href='http://www.ayudac.com' target='_blank'>AyudaC

deadLock++

                                Agradezco mucho sus contestaciones.

Redireccionar el stdout o el stderr a un archivo se hace del siguiente modo:

FILE * stream = freopen( "stdout.out", "w", stdout );

El tema es poder redireccionarlo a un flujo mío (sin utilizar archivos). El ejemplo que envió BeRSeRKeR es excelente, lástima que permite hacer esto sólo en procesos hijos de la aplicación que redirecciona el stdout. Concretamente se utiliza la función SetStdHandle para cambiar el HANDLE del flujo, sin embargo el proceso actual no relee esta HANDLE, sólo se hace cuando se inicia un proceso y es por esto que recién sirve cuando crear un proceso hijo.

Me dieron información valiosa, muchas gracias por vuestra ayuda.                                

MChiz

                                Hola!
Creo que los Pipes es lo que buscas. Yo lo tuve que utilizar una vez, y es un engorro. Depende en que Windows se ejecute funciona bien o no. En las MSDN hay informacion sobre todo esto.
Siento no tener nada para poder enseñarte, lo siento : (
Un saludo, espero que te sirva!                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.