SQlite源码分析

函数及结构体功能

内存日志文件memjournal.c共有3个结构体,9个函数 各部分功能列表如下。

表5.1.2 memjournal.c 3个结构体功能列表

编号 结构体名称 功能
1 FileChunk pNext指针链接各个节点构成的链表组成了回滚日志。
2 FilePoint 此结构体的变量回滚日志中的游标,可以用于读或写。
3 MemJournal 此结构体的变量是内存日志的主要内容。

表5.1.3 memjournal.c 9个函数功能列表

编号 函数名 功能
1 static int memjrnlRead(sqlite3_file pJfd, void zBuf, int iAmt, sqlite_int64 iOfst ) 从内存DB事务中读取数据。参数:pjfd要读取的事务,zBuf将内容放入buf,iAmt要读的字节数,iOfst偏移量。
2 static int memjrnlWrite(sqlite3_file pJfd, const void zBuf,int iAmt, sqlite_int64 iOfst) 将数据写入文件。参数:pjfd要写入的事务,zBuf存储要写入的数据,iAmt要写入的字节数,iOfst偏移量
3 static int memjrnlTruncate(sqlite3_file *pJfd, sqlite_int64 size) 对事务文档进行截断。参数:pjfd要截断的事务,size要截文件的大小。
4 static int memjrnlClose(sqlite3_file *pJfd) 关闭事务。参数:pjfd要关闭的事务。
5 static int memjrnlSync(sqlite3_file *NotUsed, int NotUsed2) 同步文件。作为应急而存在的一个空操作
6 static int memjrnlFileSize(sqlite3_file pJfd, sqlite_int64 pSize) 参数:pjfd,pSize文件大小。查询文件的字节大小。
7 void sqlite3MemJournalOpen(sqlite3_file *pJfd) 打开事务。
8 int sqlite3IsMemJournal(sqlite3_file *pJfd) 存储事务。
9 int sqlite3MemJournalSize(void) 返回事务文件的字节大小。