使用cstdio就地编辑文件?

时间:2013-08-17 06:50:52

标签: c++ file file-io cstdio

我有一个我正在使用cstdio中的函数写入数据的文件。我想确保文件已成功写入文件而没有任何中断,所以我知道当我稍后阅读文件时会对文件有什么期望。我打算这样做的方法是首先将8个字节的清零数据写入文件的最开头,正常写入文件,然后作为最后一步,重写文件并覆盖前8个字节。一个特定的签名,表示该文件已经完成并且格式正确。

我的问题是,编辑前8个字节的最佳方法是什么?

使用fopen(),使用什么是合适的开放模式(第二个参数)?

rewind()开始并使用fwrite()是否安全,或者是否有特殊功能可以覆盖?

1 个答案:

答案 0 :(得分:1)

WhozCraig是对的。使用wb+完全没问题,rewind也是。

您还可以查看文件锁定,以确保:

  • 当您持有独占锁时,没有人可以读/写文件
  • 当您持有共享锁时,没有人可以写文件