Не удается перенаправить консольный вывод программы

У меня есть программа, которую я хочу перенаправить вывод в другой файл.
Я пытался использовать стандарт

foo.exe > out.txt

Это не работает, и файл пуст, но когда я просто запускаю его из cmd, я могу нормально видеть все сообщения.

Что я заметил, если я не запускаю программу правильно и не получаю сообщение об использовании, она работает.

Я проверил источник (C ++), и кажется, что распечатки (с использованием printf) не из того же потока.

Есть идеи, почему это происходит, и как я могу это исправить?

1

Решение

Мне удалось решить эту проблему, добавив

setbuf(stdout,NULL);

к основным программам.

Я предполагаю, что буфер stdout не очищался.

2

Другие решения

Программа может выводить с помощью stderr или stdout, по умолчанию fd равно 2 и 1.

просто используйте «2>&1 «, который реализуется как ‘dup2 (1, 2)’.

0

По вопросам рекламы [email protected]