Том, спасибо за ввод.
Я провел несколько экспериментов и обнаружил, что это работает для меня ..
fpost_t pos ;
fgetpos (stdout, & pos) ;
Когда выходные данные приложения перенаправляются в файл, fgetpos () устанавливает 'pos' в ноль.Это имеет смысл, так как его недавно открытый stderr для вас. РЕДАКТИРОВАТЬ: На самом деле возвращаемое значение может быть положительным целым числом, если текст уже был перенаправлен в журнал / файл.Таким образом, в вашем коде у вас будет что-то вроде «if (pos> = 0) bfRedirected = TRUE;»
Когда вывод приложения не перенаправляется - он идет на консольное устройство - не файл,fgetpos () установит для pos значение -1.