c中文本模式和二进制模式的区别

fac*_*487 4 c file-io

在文本模式下写入/读取文件时,新行字符被转换为回车符和换行符,即\n到\ r \n,但在二进制模式下,这不会发生.

类似地,ASCII值26将在文本模式的文件末尾写入,但这不会在二进制模式下发生.

我知道这个问题早先在SO中提出过,但我没有找到任何这种行为的理由.

我的意思是,这种行为只是为了区分文本和二进制模式,还是有这种转换的任何特定原因,而不是在二进制模式下写入ASCII值26.

Sco*_*ter 6

从某种意义上说,二进制模式是"原始的":没有任何内容被翻译,因为它没有基础.而在文本模式中,文件被解释为文本,因此(例如)行结尾被转换为适当的表示.