可以删除SQLite3数据库文件,并且仍然可以访问
Sqlite3 database file can be deleted and is still accessible
我在我的rtos系统中使用sqlite3。我已经设置了配置,使其可以锁定每个事务。在我的系统上,我最终在驱动器上添加一个文件
" sqldb.db"
有交易时,如果您足够快,通常可以看到锁定文件。" sqldb.db.lock"。
让我疯狂的是,当我删除" sqldb.db"时,我仍然可以从数据库中进行选择,但是我无法插入。这不是缓存的问题,因为我可以在多个表上进行选择(在重新启动系统之前,我还没有对此进行任何操作(。
所以我的问题是,数据库文件是被缓存的吗?它保存在RAM某个地方吗?如何查询此幽灵数据库?
在unix中,当您删除文件时,立即删除目录条目,但是仅在关闭所有打开文件处理时才删除实际文件数据。
显然,您的RTO行为相同。
相关文章:
- C ++程序编译错误,找不到/访问文件
- 从文件读取,并循环访问文件以写入数组
- 确实可以提高directory_iterator在Windows上按字母顺序访问文件和文件夹
- 如何在 bash 中使用管道在 c++ 中使用 getenv() 访问文件?
- 循环访问文件的每一行
- 无法从另一个函数访问文件范围变量的内容
- 如何访问文件的二进制数据?
- 如何从NTFS中的$ MFT文件访问文件的每个块的文件指针
- C++ 写入随机访问文件
- 无法从.cpp访问 .h 文件中的私有成员变量
- boost :: filesystem :: verver()无法访问文件,因为另一个过程正在使用该文件
- 如何在 Qt/C++ 中仅将文件路径作为字符串访问文件
- 如何从 JAVA 程序中访问文件中定义的类.DLL方法
- 如何访问 C 文件中C++公共布尔类成员(进行验证)
- 随机访问文件格式,用于分层组织的二进制文件和文本文件
- 连接到 FTP 服务器并访问文件
- 频繁访问文件映射内存
- 'Good'通过条目维护/更新/访问文件的编程形式
- 访问文件中的单个字符效率低下?(C++)
- wxwidgets类访问文件属性