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

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

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

Заранее спасибо.


person Egon    schedule 25.09.2011    source источник


Ответы (1)


Это поможет в Linux: Как отличить запуск в консоли Linux от сеанса ssh?

Да, это вызов C, но его определенно можно вызвать из C++.

GetStdHandle дает аналогичная отправная точка под окнами:

person Danny Staple    schedule 25.09.2011