Как проверить, запущена ли программа с консоли?

Я пишу приложение, которое сбрасывает некоторые диагностические данные в стандартный вывод.

Я бы хотел, чтобы приложение работало таким образом:

  • Если оно запускается из автономной командной строки (через cmd.exe) или имеет стандартный вывод, перенаправленный / переданный в файл, выйдите чисто, как только оно закончится,
  • В противном случае (если оно запускается из окна и окно консоли порождается автоматически), то Кроме того, дождитесь нажатия клавиши перед выходом (чтобы пользователь прочитал диагностику), прежде чем окно исчезнет

Как провести это различие? Я подозреваю, что изучение родительского процесса может быть способом, но я не очень говорю о WinAPI, отсюда и вопрос.

Я нахожусь на MinGW GCC.

24
задан Borealid 26 January 2012 в 05:41
поделиться