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

Я новичок в 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

Если вы действительно хотите узнать больше о (удивительных) функциях, которые предлагает командная строка, я бы действительно рекомендовал прочитать эту книгу (и много программировать:))

http://linuxcommand.org/

Наслаждайтесь!

Ответ 4

В Unix-оболочках обычно вы можете сделать executable > file 2> &1, whch означает "перенаправить стандартный вывод на файл и выводить ошибку на стандартный вывод"