我正在尝试将大量数据写入文件。有人建议我应该使用二进制模式,但我已经在文本模式下完成了它。在速度方面使用二进制文件有很大的不同吗?使用二进制模式有什么优点或缺点?
答案 0 :(得分:3)
文本模式执行换行符,以便
fprintf(myfile, "\n");
可以在类Unix系统上生成一个字节(0x0a,换行符),在Windows上生成两个(0x0d,0x0a,回车符后换行)。这需要时间,因为这意味着必须检查每个字节。如果与I / O系统的速度相比真的很重要,那当然是高度可变的。
答案 1 :(得分:1)
在二进制模式下,数据写入不变。在文本模式下,可以有一些额外的代码来处理'\n'
和'\r'
(在DOS / Windows '\n'
中扩展为'\r\n'
)。无论如何,磁盘速度比RAM速度低几个数量级,我不会太在意这里的模式,当然,除非事实证明这两种模式的缓存不同。