Откуда выводит 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 за то, что он указал мне правильное направление, я обновлю решение, как только найду его.