Newsgroup: it.comp.lang.c++
Titolo: Console - Catturare l'output

Salve a tutto l'NG
Come si fa a leggere l'output di un'applicazione DOS
Avvio il programma con ShellExecute e poi appena termina si chiude
(tutto normale quindi) ma ho bisogna di "catturare" l'output !!!
ringrazio infinitamente ki mi da una mano
gianni.

 ha scritto nel messaggio
news:9i10pa$fselo$1...@ID-96453.news.dfncis.de...

programma.exe > c:\out.txt

 ha scritto nel messaggio
news:VMT07.4450$D03.1...@news.infostrada.it...



Ti sei spiegato bene.
Devi dirottare l'output su file, oppure fai tutto dal prompt di ms-dos...

 ha scritto nel messaggio
news:YSU07.4638$D03.1...@news.infostrada.it...


 scritte????
in un tuo programma?
vedi popen() (e' C)

 ha scritto nel messaggio
news:1052141.l...@tin.it...


> > vedi popen() (e' C)
Per fare delle prove ho semplicemente  fatto
        FILE* mioFile;
        mioFile = _popen("dir *.*","rt");
ma mioFile continua a essere NULL e non capisco perchč. Ho win2000 non č
che....

 ma mioFile continua a essere NULL e non capisco perchč. 
prova a togliere la t....
mioFile = _popen("dir *.*","r")


Come ti ho detto!
Ma č un tuo programma? Se č cosě allora č diverso!
Basta mettere #include <conio.h>
e poi alla fine getch();
Ciao

 ha scritto nel messaggio
news:Bo317.9174$D03.3...@news.infostrada.it...



Quindi a te interessa come si fa a scrivere sul file?

 ha scritto nel messaggio
news:dzf17.12126$D03.4...@news.infostrada.it...


 Poi se lo voglio scrivere su file è una cosa secondaria.
system("dir *.* > file");

 ha scritto nel messaggio
news:9i49ot$kdp$1...@fe2.cs.interbusiness.it...


 Per esempio se voglio compilare un'APPLET con javac non va....
la redirezione ">" opera solo sullo standard output. Ovvimente i messaggi
del compilatore di cui parli non manda in output sul quel desricttore. Prova
a redirigere lo standard error, mi pare che con la shell di UNIX vada ">2".
Con la shell del DOS non saprei.
Per sapere se redirigere lo stderr o stdout non saprei...magari verifichi
quale dei 2 viene uitlizzato e poi agisci su quello.
Cmq credo che siamo OT....io per primo.

 vada ">2". Con la shell del DOS non saprei.
Vada per
comando 2>file
( 2 + maggiore )
Funzionano anche cose ( sotto la shell di nt4 ) '2>&1'

Funzionano anche cose ( sotto la shell di nt4 ) '2>&1'
Il comando che uso di solito su linux/cygwin per tentare di
decifrare i messaggi di errore sui template (schermate e
schermate che schizzano via istantaneamente) e'
  g++ ... 2>&1 | less
Per Win9x e' disponibile l'utility "redir" che permette di
fare qualcosa di simile
  redir -eo bcc32 ... | more
Con una ricerca fatta su web in questo momento ho trovato
questo link...
 
http://home.trouwweb.nl/Jerry/utilities.html#REDIR
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

   g++ ... 2>&1 | less
O ancora meglio
g++ ... 2>&1 | tee gcc.out | less
Ciao,
Nicola

g++ ... 2>&1 | tee gcc.out | less
Io non tengo mai l'output della compilazione: con il C++ in
generale ma con i template in particolare quello che mi
interessa e' il *primo* errore (che malaugurtamente e'
quello che schizza fuori schermo). Spesso tutti gli altri
sono solamente spazzatura conseguenza di questo.
Di questo devono essersi resi conto anche gli autori di
g++ che hanno introdotto il simpatico e utile) "Confused
by previous errors. Bailing out.".
Che utilita' avrebbe continuare a segnalare errori quando
ci si rende conto che non si sta capendo praticamente
nulla di quanto ha scritto l'autore del sorgente ? :-)


Provato.
Grazie 1000
"Goffredo Baroncelli" <krei...@earthling.net.antispam> ha scritto nel
messaggio news:6ib9i9...@therra.bhome...


 nulla di quanto ha scritto l'autore del sorgente ? :-)
Dipende dagli errori e dalla qualita' dell'error recovery del
compilatore: ricordo ancora l'impressione di "telepatia" che dava il
compilatore UW Pascal col quale cominciai tanti anni fa.
In effetti se stai scrivendo del codice nuovo, e' raro che il
compilatore dia informazioni utili dopo il primo errore, ed e'
preferibile un ciclo edit-compile-test rapido, per poter procedere per
piccoli incrementi.
Quando porti o "rifattori" codice esistente secondo me e' piu' utile
avere il maggior numero di segnalazioni possibili, perche' e' piu'
probabile dover ripetere correzioni a tappeto.
Ciao,
Nicola