У меня есть программа, которую я хочу перенаправить вывод в другой файл.
Я пытался использовать стандарт
foo.exe > out.txt
Это не работает, и файл пуст, но когда я просто запускаю его из cmd, я могу нормально видеть все сообщения.
Что я заметил, если я не запускаю программу правильно и не получаю сообщение об использовании, она работает.
Я проверил источник (C ++), и кажется, что распечатки (с использованием printf) не из того же потока.
Есть идеи, почему это происходит, и как я могу это исправить?
Мне удалось решить эту проблему, добавив
setbuf(stdout,NULL);
к основным программам.
Я предполагаю, что буфер stdout не очищался.
Программа может выводить с помощью stderr или stdout, по умолчанию fd равно 2 и 1.
просто используйте «2>&1 «, который реализуется как ‘dup2 (1, 2)’.