|
|
|
|
|
by foresto
42 days ago
|
|
I'm pretty sure that conversion was done by the C library, just as stated in the article. Not by DOS. ASCII 0x0A '\n' is always one byte*, and C library implementations for DOS would insert an ASCII 0x0D '\r' byte before it at output time if the C FILE stream had been opened in text mode. Note that printf(), which you use in your example, is a C library function that writes writes to a predefined text mode stream. So it follows the same rules. I wasn't able to dig up the source code of a vintage DOS compiler's C library in a few minutes of looking, so I can't prove it right now, but this section of the C standard (7.21.2 - Streams) hints that my recollection is correct: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf#p... *(On systems where the char type is one byte, of course, which is the case for DOS C compilers.) |
|