Tom, grazie per l'ingresso.
ho fatto alcuni esperimenti e abbiamo trovato questo funziona per me ..
fpost_t pos ;
fgetpos (stdout, & pos) ;
Quando l'uscita di un'applicazione viene reindirizzato a un file, fgetpos() set di 'pos' a zero. Ha senso dal momento che è appena aperto per te. EDIT: In realtà, il valore restituito può essere un numero intero positivo se il testo è già stato reindirizzato al/file di log. Quindi nel tuo codice avresti qualcosa come "if (pos> = 0) bfRedirected = TRUE;"
Quando l'uscita di un'applicazione non viene reindirizzato - è andare al dispositivo di console - non è un file, in modo da fgetpos() imposterà 'pos' a -1.
per quanto ne so, questo non è possibile. Quindi leggerò questo per vedere se ho torto ... –
Non c'è modo di saperlo. Ho visto programmi che consentono un'opzione della riga di comando per fare funzionalità diverse che spesso viene attivata solo quando l'output viene reindirizzato. – Hogan
Non sicuro al 100% in Windows, ma in Linux ci sono molti programmi che si comportano in modo diverso se collegati o meno ... l'esempio più comune è "ls". – fortran