I found that Windows command line redirection will replace '\n' with '\r\n' automatically. Is there any method to avoid this situation? Because after stdout or stderr redirection, you will got '\r\r\n' instead of '\r\n' if you write '\r\n' to the console.
Thanks a lot!
you can just try a simple program:
fprintf(stdout,"Hello, world!\r\n");
then you run it with redirection:
demo 1>demo.log
By using any HEX editor, you will find that '\r\n' is represented by '\r\r\n'.
UPDATE:
@steve-jessop I have solved this problem by using setmode
, which will force stdout
using O_BINARY
mode. So the stream won't translate \n
into \r\n
.
Thanks a lot!