Откуда выводит printf на windows?

У меня есть приложение Windows (VS2013) C++. во всем приложении у меня есть вызовы к printf для вывода информации. Для того, чтобы лучше просмотреть эту информацию, я хотел попробовать findstr в теме. во время отладки я не могу сказать, куда выводится информация. Приложение имеет несколько потоков.

myApplication.exe > foo.txt 2>&1
# here is a bunch of stuff that is printed to the console when I don't think it should be.

создаст пустой файл с именем foo.txt без вывода, и сообщения будут впоследствии записаны на консоль, это меня смущает, так как я думаю, что приведенная выше команда должна передавать оба stderr а также stdout в файл foo.txt, Бег type foo.txt показывает пустой файл.

Точно так же я не могу передать вывод findstr или похожий или даже сказать, где он выводится (выглядит нормально stdout)

Запуск команды из оболочки Cygwin (которую я пытался, как я предполагаю, есть какая-то проблема с stdout или же stderr и текст передается к чему-то еще) не показывает какой-либо вывод, что поддерживает мою идею, что может быть проблема с этим. куда выводится текст?

РЕДАКТИРОВАТЬ: кажется, стало уместным, что я использую встроенный хром-фреймворк, который при поиске кода, кажется, имеет некоторые вещи, такие как:

// Add console so that 'logging' (really printf) is captured
// TODO: drop this once we no longer need it?
if(AttachConsole(ATTACH_PARENT_PROCESS) || AllocConsole()){
    freopen("CONOUT$", "w", stdout);
    freopen("CONOUT$", "w", stderr);
}

что кажется довольно виновным, спасибо @frymode за то, что он указал мне правильное направление, я обновлю решение, как только найду его.

0 ответов

Другие вопросы по тегам