DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C (http://www.daniweb.com/forums/forum118.html)
-   -   Capturing Console Output (http://www.daniweb.com/forums/thread5755.html)

BountyX May 4th, 2004 10:52 pm
Capturing Console Output
 
I would liek to invisibly run a console application, capture it's output, and save its contents into a log window with an edit control. I know it's possible becuase i've seen it done, but how can I capture terminal output?

infamous May 5th, 2004 12:34 am
Re: Capturing Console Output
 
i'm not sure if this is the answer u want, b/c i dont fully understand what u mean by "log window", but if u run a program from DOS prompt like:

./program >outfile standard output is redirected to the file outfile. if u want to do that inside the program, u use the dup2() function. open the output file, and then dup2 the descriptor onto STDOUT.

infamous May 5th, 2004 12:42 am
Re: Capturing Console Output
 
ugh, nevermind apparently windows doesn't support dup'ing

BountyX May 5th, 2004 12:48 am
Re: Capturing Console Output
 
Quote:

Originally Posted by infamous
ugh, nevermind apparently windows doesn't support dup'ing

found a solution, ended up using pipes to redirect all streams

char psBuffer[128];
        FILE *telnet;
        /* Run telnet so that it writes its output to a pipe. Open this
        * pipe with read text attribute so that we can read it
        * like a text file.
        */
        if( (telnet = _popen( "cdrecord --help", "rt" )) == NULL )
        exit( 1 );
        /* Read pipe until end of file. End of file indicates that
        * telnet closed its standard out (probably meaning it
        * terminated).
        */
        while( !feof( telnet ) )
        {
        if( fgets( psBuffer, 128, telnet ) != NULL )
        printf( psBuffer );
        }
        /* Close pipe and print return value of telnet */
        printf( "\nProcess returned %d\n", _pclose( telnet ) );

NOTE: I only used telnet for testing purposes, my real program created a blank file when I tried "cmd /c myProgram.exe > datafile.txt" with a system command or just "myProgram.exe > datafile.txt". The above was my solution.

FireNet May 6th, 2004 4:09 am
Re: Capturing Console Output
 
I do not not understand how the pipeing program works

sarin Mar 6th, 2006 12:47 am
Re: Capturing Console Output
 
Quote:

Originally Posted by FireNet
I do not not understand how the pipeing program works

can i have the source if you have one, i want to capture the telnet outputs to a txt file, all i need to do it programatically, i need to login telnet and process some commands and get the output to a file, if i can get a c++ or vb source code which does this, it would be great, thanks in advance

sarin

Ancient Dragon Mar 6th, 2006 1:04 am
Re: Capturing Console Output
 
Quote:

Originally Posted by infamous
ugh, nevermind apparently windows doesn't support dup'ing

yes it does -- for redirecting stdout or stderr to a file. You can't redirect it like that to a MS-Windows GUI control, such as an edit control. And I don't think you can do that under *nix X11 controls either.

But I know what you want to do can be done -- I've seen it, but not sure how to do it either. Maybe pipes is the way to go.

krunalpatel1410 Mar 31st, 2009 4:29 pm
Re: Capturing Console Output
 
Quote:

Originally Posted by sarin (Post 195024)
can i have the source if you have one, i want to capture the telnet outputs to a txt file, all i need to do it programatically, i need to login telnet and process some commands and get the output to a file, if i can get a c++ or vb source code which does this, it would be great, thanks in advance

sarin

hi,,

sarin u understand problem specified in that thread topic,
i m try also try to capture the telnet command prompt data into text file.. if u have code for this functionality then please help ...
i m very frustrate, i can't get solution .
plz provide solution as soon as possible...


krunal


All times are GMT -4. The time now is 4:58 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC