我为我们公司的产品编写引擎,旨在运行在客户的亭子上。这包括将文件写入磁盘的代码。
我们无法控制客户选择的硬件或操作系统,并且第一次我们被赋予了Windows 7嵌入式系统。突然之间,如果在刷新后立即断电,我们的安全写入就会失败。
虽然包含commode.obj可以导致fflush提交,即使在Win7上,但我始终更喜欢在Windows上使用MS特定的提交模式标志(“c”)(Linux版本使用完全不同的方法),因为我编写的是库而不是产品,所以我无法确定是否已经包含了commode.obj,因此无法抛出错误。
我们无法控制客户选择的硬件或操作系统,并且第一次我们被赋予了Windows 7嵌入式系统。突然之间,如果在刷新后立即断电,我们的安全写入就会失败。
虽然包含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 被包含,或者是否有其他方法可以改变全局提交标志的状态?