Как я могу проверить в C ++, перенаправлен ли std :: cout в файл? - PullRequest
10 голосов
/ 26 сентября 2011

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

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

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

Ответы [ 2 ]

4 голосов
/ 26 сентября 2011

Это поможет в Linux: Как определить, работает ли консоль Linux в сравнении с сеансом SSH?

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

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

0 голосов
/ 26 сентября 2011

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

...