Я новичок в c.
Есть ли простой способ перенаправить весь вывод консоли (printfs и т.д.) В файл, используя какой-либо общий параметр командной строки \linkage (без изменения какого-либо исходного кода)?
Если да, то какая процедура?
Ответ 1
Использовать перенаправление вывода оболочки
your-command > outputfile.txt
Стандартная ошибка будет выводиться на консоль. Если вы этого не хотите, используйте:
your-command > outputfile.txt 2>&1
или
your-command &> outputfile.txt
Вы также должны изучить утилиту tee, которая может перенаправить ее на два места одновременно.
Ответ 2
В организациях вы также можете:
your-command | tee output file.txt
Таким образом вы увидите вывод и сможете взаимодействовать с программой, получая печатную копию стандартного вывода (но не стандартного ввода, поэтому он не похож на сеанс телетайпа).
Ответ 3
Как упоминалось выше, вы можете использовать оператоp > для перенаправления вывода вашей программы в файл, как в:
./program > out_file
Кроме того, вы можете добавить данные в существующий файл (или создать его, если он не выйдет уже с помощью оператора → :
./program >> out_file
Если вы действительно хотите узнать больше о (удивительных) функциях, которые предлагает командная строка, я бы действительно рекомендовал прочитать эту книгу (и много программировать:))
В Unix-оболочках обычно вы можете сделать executable > file 2> &1, whch означает "перенаправить стандартный вывод на файл и выводить ошибку на стандартный вывод"