在c中写入文件时,二进制模式和文本模式之间是否存在性能差异?

在c中写入文件时,二进制模式和文本模式之间是否存在性能差异?,c,file,binary,C,File,Binary,我正试图将大量数据写入一个文件。有些人建议我应该使用二进制模式,但我已经在文本模式下这样做了。在速度方面使用二进制有很大的不同吗?使用二进制模式的优缺点是什么?文本模式进行换行翻译,因此 fprintf(myfile, "\n"); 在类Unix系统上可以生成一个字节(0x0a,换行符),在Windows上可以生成两个字节(0x0d,0x0a,回车符后跟换行符)。这需要时间,因为这意味着必须检查每个字节。如果这与I/O系统的速度相比真的很重要,那么它当然是高度可变的 fprintf(myfil

我正试图将大量数据写入一个文件。有些人建议我应该使用二进制模式,但我已经在文本模式下这样做了。在速度方面使用二进制有很大的不同吗?使用二进制模式的优缺点是什么?

文本模式进行换行翻译,因此

fprintf(myfile, "\n");

在类Unix系统上可以生成一个字节(0x0a,换行符),在Windows上可以生成两个字节(0x0d,0x0a,回车符后跟换行符)。这需要时间,因为这意味着必须检查每个字节。如果这与I/O系统的速度相比真的很重要,那么它当然是高度可变的

fprintf(myfile, "\n");

在类Unix系统上可以生成一个字节(0x0a,换行符),在Windows上可以生成两个字节(0x0d,0x0a,回车符后跟换行符)。这需要时间,因为这意味着必须检查每个字节。如果这与I/O系统的速度相比真的很重要,那么它当然是高度可变的。

在二进制模式下,数据的写入保持不变。在文本模式下,可以有一些附加代码来处理
'\n'
'\r'
(在DOS/Windows中
'\n'
扩展为
'\r\n'
)。无论如何,磁盘速度比RAM速度低几个数量级,我不会太在意这里的模式,当然,除非在这两种模式下缓存是不同的。

在二进制模式下,数据写入不变。在文本模式下,可以有一些附加代码来处理
'\n'
'\r'
(在DOS/Windows中
'\n'
扩展为
'\r\n'
)。无论如何,磁盘速度比RAM速度低几个数量级,我不会太在意这里的模式,当然,除非两种模式下的缓存不同