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

时间:2012-02-24 10:26:23

标签: c file binary

我正在尝试将大量数据写入文件。有人建议我应该使用二进制模式,但我已经在文本模式下完成了它。在速度方面使用二进制文件有很大的不同吗?使用二进制模式有什么优点或缺点?

2 个答案:

答案 0 :(得分:3)

文本模式执行换行符,以便

fprintf(myfile, "\n");

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

答案 1 :(得分:1)

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