Linux   发布时间:2022-05-08  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – fsync(fd)是否适用于外部程序创建的文件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个禁用写入缓存的SATA硬盘:

@H_262_7@hdparm -W0 /dev/foo

我正在使用这些挂载选项(以及其他)的ext4分区上运行:@H_618_10@

@H_262_7@data=ordered auto_da_alloc

Linux内核版本是2.6.32-5-686.@H_618_10@

现在,我有一个我无法修改的外部程序,但我知道以下列方式创建一个文件:@H_618_10@

@H_262_7@int fd = open(path); write(fd,data,data_sizE); close(fd);

即在关闭之前它没有fsync.所以在这一点上,数据可能在RAM中,在kernel / fs缓存中的某个地方.@H_618_10@

注意:元数据还不是一个问题:在我确保数据已经到达磁盘盘片之后,最终的元数据将被写入并保存.数据本身就是问题所在.@H_618_10@

所以问题是,我如何帮助数据到达实际的磁盘盘片?@H_618_10@

我之后想过运行这个单独的程序:@H_618_10@

@H_262_7@int fd = open(path); fsync(fd); close(fd);

这有助于刷新数据,还是应该使用不同的方法?@H_618_10@

解决方法

是的,fsync的用户并不重要.@H_618_10@

请注意,您可能希望同步fsync文件所在的目录,以便同步文件的元数据.@H_618_10@

大佬总结

以上是大佬教程为你收集整理的linux – fsync(fd)是否适用于外部程序创建的文件?全部内容,希望文章能够帮你解决linux – fsync(fd)是否适用于外部程序创建的文件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: