gpt4 book ai didi

c++ - 在没有系统和硬盘缓存的情况下写入文件

转载 作者:太空狗 更新时间:2023-10-29 20:32:19 25 4
gpt4 key购买 nike

如何在不使用系统缓存和驱动器缓存的情况下用 C++ 向文件写入内容?无论所有系统缓存设置如何,我只想准确地写入硬盘。

最佳答案

除非您正在编写磁盘设备驱动程序,否则您不能保证您的写入不会有任何缓存或处理。

C 运行时库公开了 fflush(FILE *) 来执行此操作。 Windows 有 FlushFileBuffers 以及一个可以传递给 CreateFile 的标志 (FILE_FLAG_NO_BUFFERING)(它本身增加了对你可以做什么的限制)。

尝试绕过写缓存的另一种方法是使您的数据结构能够抵抗部分故障。对于文件,一种流行的技术是在写入文件的其余部分后写出文件的标题。假设墨菲而不是马基雅维利的行为,这就足够了。

或者使用操作系统提供的文件替换或事务功能(参见 ReplaceFileTransactional NTFS 适用于 Windows)。

关于c++ - 在没有系统和硬盘缓存的情况下写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2223942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com