Printing output of c program to a file in Linux

last updated in Categories , , , ,

Q. I’ve written a small program that does something useful for me. I always get output on screen. Sometime I need to send output to a file. How do I print output of my program to a file w/o making any changes to code?

A. Bash shell (and many other modern UNIX shell) supports the concept of I/O redirection It allows you to redirect standard output (screen), standard error and standard input (keyboard) using the following syntax.
command > output.file
command < input.file command >& error-n-output.file

So to redirect output of your own C program just enter:
$ ./myprogr > output.txt
$ cat output.txt

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

5 comment

  1. in addition by using
    command >> file
    you can reuse the same file without deleting the previous data.
    >> adds text to the end of the file :)

  2. Thanks a lot for that,
    But is there a way i can write the output of a c program into a file from WITHIN THE PROGRAM. For example, i know this doesnt work, but what can i do to repliacte this

    system(“ls”) > t1.txt

    Have a question? Post it on our forum!