2014-09-24 44 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 
相關問題