2014-09-24 26 views
0

我试图用fsync尽快将一些文件写入SD卡。但是,在将文件物​​理写入SD卡之前,fsync实际上并未阻塞。数据实际上在SD卡上之前似乎需要大约5-6秒。然而,使用commit = 1或sync选项安装文件系统(我试过ext3,ext4)确实可以工作,重启后数据在1秒内是安全的。我的问题是,无论如何不采取分区广泛的解决方案来实现冲洗?我正在使用Linux内核2.6.37。谢谢fsync无法在ext3或ext4系统上工作

+0

你确定它不适用于ext3吗?请参阅ext4问题[数据丢失,未正确使用fsync()的应用程序](https://www.thomas-krenn.com/en/wiki/Ext4_Filesystem#Data_Loss_with_Applications_that_do_not_use_fsync.28.29_correctly)。 – pevik 2015-05-11 13:13:56

回答

0

如果你想确定内容是写在SD卡上的,你应该在退出程序之前用--flushbufs调用blockdev。 如果您想对写作过程进行基准测试,您可以在每次写入后调用它。

/sbin/blockdev --flushbufs $dev 
相关问题