gpt4 book ai didi

linux - 我可以将 O_DIRECT 用于写入请求以避免在电源故障期间丢失数据吗?

转载 作者:太空狗 更新时间:2023-10-29 11:39:45 27 4
gpt4 key购买 nike

我们想尽最大努力避免断电时数据丢失。所以我决定使用 O_DIRECT 标志打开一个文件将数据写入磁盘。 O_DIRECT 是否意味着数据完全绕过操作系统缓存?如果请求成功返回应用程序,是否意味着数据一定已经刷新到磁盘?如果我在一个文件系统中打开一个常规文件,FS 元数据如何?是也立即刷新,还是缓存?

对了,O_DIRECT可以在Windows下使用吗?或者Windows中有没有相应的方法?

最佳答案

O_DIRECT 可能会做你想做的事,但它会大大减慢你的 I/O。
我认为只调用 fsync() 或 fflush() 取决于你是使用直接文件描述符操作还是 FILE * 就足够了。
至于元数据问题,它取决于底层文件系统,如果您想更加偏执,甚至取决于硬件。硬盘驱动器(尤其是 SSD)可能会报告操作已完成,但实际写入数据可能需要一段时间。

关于linux - 我可以将 O_DIRECT 用于写入请求以避免在电源故障期间丢失数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5763305/

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