Я знаю, чтоПрямой вывод на стандартный вывод и выходной файл одновременно?
./executable &>outputfile
будет перенаправлять стандартный вывод и стандартные ошибки в файл. Это то, что я хочу, но мне также хотелось бы, чтобы результат продолжал печататься в терминале. Каков наилучший способ сделать это?
EDIT: Хорошо, вот моя точная команда: Я попытался
./damp2Plan 10 | tee log.txt
и
./damp2Plan 10 2>&1 | tee log.txt
где 10 это просто аргумент, передаваемый основной. Ни одна из них не работает правильно. В результате очень первый вывод printf в коде действительно подходит к терминалу и log.txt просто отлично, но никто из остальных не делает этого. Я на Ubuntu 12.04.
Нет, 'CMD &> file' не перенаправляется в файл. В * некоторых * оболочках он делает это, но в других запускает 'cmd' в фоновом режиме без перенаправления и обрезания файла. Поведение '&>' не указано. –
Неужели './Damp2Plan' все еще работает после вывода одной строки, или она завершена? Если он все еще работает, возможно, что 'tee' запустил последующий вывод. В этом случае вам нужно будет написать больше вывода или дождаться завершения './Damp2Plan'. – craig65535
@ craig65535 Да, я верю ./damp2Plan все еще работает, так как он продолжает печатать выходные данные в своих других файлах, как и следовало ожидать. Что вы подразумеваете под «написать больше вывода»? Я бы предпочел не дождаться, пока он закончится, так как он занимает около 10 минут. На данный момент я думаю, что было бы проще просто добавить fprintf для каждого printf. – whatsherface