我的应用程序在便携式Debian(5和8)计算机上运行。此计算机可能会在不可预测的时间内断电。应用程序经常更新特定的SQLite3数据库,并使用sync()
命令立即刷新到磁盘。这样做是为了避免数据库损坏,这种情况会在更改完全写入磁盘之前消失。
这一直很好用,但现在的问题是sync()
命令将所有打开的文件刷新所有缓冲的更改。这会导致系统其他部分的速度减慢。一种可能的解决方案是仅刷新关键文件更改,例如此特定数据库文件。但问题是;我怎样才能做到这一点?我无法访问文件描述符,我无法找到任何为我执行此操作的SQLite3函数。有什么想法吗?