我在我的RTOS系统中使用SQLite3。我已经设置了配置,以便锁定每个事务。在我的系统上,我最终在驱动器上有一个文件
“SQLDB.db”
当存在交易时,如果足够快,通常可以看到锁定文件。 “SQLDB.db.lock”。
让我疯狂的是,当我删除“SQLDB.db”时,我仍然能够从数据库中执行SELECT,但是我无法插入。这不是缓存问题,因为我可以选择多个表(我在重新启动系统之前没有进行任何操作)。
所以我的问题是,DB文件是否被缓存?它被保存在某个地方的RAM中吗?如何查询这个ghost数据库?
答案 0 :(得分:0)
在Unix中,当您删除文件时,会立即删除目录条目,但只有在所有打开的文件句柄都已关闭时才会删除实际的文件数据。
显然,您的RTOS行为相同。