That's because > explictly means 'redirect stdout to this filename after truncating to zero length'. As opposed to >> which means 'redirect stdout and append to this filename'. Neither of these are options/flags to the program itself. They are instructions to the shell (which is used to launch the program) to connect certain file descriptors to the file rather than to your tty/terminal/screen/whatever.