我为我们公司的产品编写引擎,这些产品旨在在我们的客户信息亭上运行。这包括将文件写入磁盘的代码。
我们无法控制客户对硬件或操作系统的选择,并且我们第一次获得了可以使用的 Windows 7 Embedded。突然之间,如果刷新后立即断电,我们的安全写入就会开始失败。
尽管包含 commode.obj 会导致 fflush 提交,即使在 Win7 上,我也一直更喜欢在 Windows 上使用 MS 特定的提交模式标志(“c”)(Linux 版本使用完全不同的方法),因为正如我所写库而不是产品,我永远无法确定 commode.obj 是否真的被包含在内,所以我不能抛出错误。
FILE* p_f = fopen("foo.dat", "wbc");
fwrite(p_important_stuff, 1, size, p_f);
fflush(p_f);
所以我的问题是:提交模式标志在 Win7 上是否被破坏,如果是这样,有没有办法可以保证commode.obj 被包含在内,或者是否有其他方法可以更改全局提交标志的状态?