如何确保在文件 IO (WriteFile()) 上将数据刷新到 HDD(未缓冲)
How to make sure data is flushed to HDD (not buffered) on file IO (WriteFile())
在漫长且可能对系统造成压力的操作中,我不时通过文件句柄和 WriteFile
更新文件
我注意到,当我用鼠标右键单击该文件并在 Windows 中询问其属性时,我根本看不到它已更新。修改后的 time/data 并未反映我所做的实际更新。
我意识到 Windows 可能会在文件句柄关闭之前缓冲内存中的内容。整个想法是更新文件,这样当系统崩溃时我们至少知道我们在哪里(有点)。
如何确保在不关闭文件句柄的情况下刷新内容?
我建议您尝试 flushing the buffer or check whether WriteFile
is returning TRUE. If it's not, there's probably something wrong, like permission denied or something. You can use GetLastError。
在漫长且可能对系统造成压力的操作中,我不时通过文件句柄和 WriteFile
我注意到,当我用鼠标右键单击该文件并在 Windows 中询问其属性时,我根本看不到它已更新。修改后的 time/data 并未反映我所做的实际更新。
我意识到 Windows 可能会在文件句柄关闭之前缓冲内存中的内容。整个想法是更新文件,这样当系统崩溃时我们至少知道我们在哪里(有点)。
如何确保在不关闭文件句柄的情况下刷新内容?
我建议您尝试 flushing the buffer or check whether WriteFile
is returning TRUE. If it's not, there's probably something wrong, like permission denied or something. You can use GetLastError。