如果不采取其他措施,新的数据库连接将使用默认的VFS。 默认的VFS可以通过使用带有第二个参数的sqlite3_vfs_register()接口注册或重新注册VFS来更改。
使用VFS存储驱动程序 VFS存储驱动程序不是联合文件系统;相反,每个图层都是磁盘上的目录,并且没有写时复制支持。要创建一个新图层,先前的图层会进行“深层复制”。
szOsFile字段是此VFS使用的子类sqlite3_file结构的大小。mxPathname是此VFS中路径名的最大长度。
SQLite可以同时使用多个VFS。每个单独的数据库连接仅与一个VFS关联。但是,如果您有多个数据库连接,则每个连接都可以与不同的VFS关联。 总是有一个默认的VFS。
SQLite的缺省构建包含适当的VFS对象,以便与底层操作系统进行交谈,这些VFS对象将包含诸如open(),read(),write(),fsync()等操作系统调用。
4.0添加新的虚拟文件系统 从版本3.5.0(2007-09-04)开始,SQLite支持称为虚拟文件系统或“VFS”的接口。
sqlite3_open_v2()的第四个参数是定义新数据库连接应使用的操作系统接口的sqlite3_vfs对象的名称。如果第四个参数是一个NULL指针,那么使用默认的sqlite3_vfs对象。
SQLite将扇区大小理解为VFS中xSectorSize方法返回的值。SQLite团队经常将xSectorSize返回的值作为写入的“爆炸半径”,因为它表示在写入期间发生掉电时可能损坏的字节范围。
该函数返回的文件名是VFS的xFullPathname方法的输出。换句话说,即使最初用来打开数据库的文件名是URI或相对路径名,文件名也将是绝对路径名。

扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2026 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059
粤公网安备44030502008569号
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号
