read + write和read + write + truncate有什么区别?

时间:2016-02-25 01:45:49

标签: c++ linux

这是一个简单的问题,但我无法在任何地方找到解释

我在C ++中使用fopen,我可以选择使用

" R + B" (读写)

W + B" (读写和截断)

Truncate是什么意思? " r + b"之间有什么区别?和" w + b"? 我理解truncate的数学含义是在一定数量的小数点后删除精度,但我不理解C ++语境中的确切含义。

谢谢,

2 个答案:

答案 0 :(得分:2)

“truncate”表示文件在打开时将设置为0大小。

"w+b"将为您提供一个可以读写的空文件(如果它不存在则创建它)。

如果文件不存在,

"r+b"将失败;如果文件确实存在,那么该文件暂时保持不变,您可以读取或写入该文件。

答案 1 :(得分:0)

r+bw+b之间的区别在于r+b保持文件中的所有现有数据不变,而w+b将删除(截断)文件中的任何数据,好像您已创建新文件或使用w打开它。

这同样适用于非二元修饰符r+w+