2012年(27)
分类: SQLite/嵌入式数据库
2012-03-21 10:41:40
虚拟flash是在os上用文件模拟的。
sqlite需要os的支持,比如获取文件大小之类的,都需要os的操作。在移植过程中,对文件大小的操作是通过两个64位整数来记录的(分别记录数据文件大小pDb和日志文件大小pJour)。
首先将os上1G大小的virtualFlash文件全部初始化为0xff,然后写DB文件的时候就会将virtualFlash改写。此时,就需要变动pDb,以此类推。
在sqlite初始化时,则需要扫描整个virtualFlash。当遇到0xff时,说明扫描到DB文件末尾,则此时的pDb就是DB文件大小。
若是DB文件中有0xff,则需要测试一下,测试接下来的1025个字符是不是全都是0xff。如果不全是,说明DB文件末尾不是到此结束的,接着进行测试。