下面的内容看起来很合理,但我听说即使在 close() 调用之后,理论上数据仍然可以位于缓冲区中而不是磁盘上。
#include <fstream>
int main()
{
ofstream fsi("test.txt");
fsi << "Hello World";
fsi.flush();
fsi.close();
return 0;
}
您无法使用标准工具来实现此目的,并且必须依赖操作系统设施。
对于 POSIXfsync
应该是你需要的。由于无法从标准流获取 C 文件描述符,因此您必须在整个应用程序中求助于 C 流,或者只是打开文件以刷新磁盘。或者有sync
但这会冲水all缓冲区,您的用户和其他应用程序会讨厌它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)