Как я могу проверить на С++, перенаправляется ли std:: cout в файл?

Мне нужна моя программа, чтобы вести себя по-другому, в зависимости от того, является ли вывод терминалом или файлом. Как я могу найти это из С++?

Я предполагаю, что нет решения, которое работает для всех операционных систем. Для моих целей было бы неплохо иметь одну стратегию, которая работает под Windows и работает под Linux/unix.

Спасибо заранее.

Ответ 2

Я не уверен, что это возможно в Linux (но, возможно, я ошибаюсь). Если вы хотите контролировать это для своего собственного кода, я бы использовал фреймворк регистрации, например google glog