SQlite源码分析

打开内存日志

除了将sqlite3_file读取成MemJournal格式,返回指针变量P,还将p所指向的某一块内存中的所有字节的内容全部设置为0(ASCII码),以及设置内存日志文件MemJournal的操作集指针。

//打开内存日志文件
void sqlite3MemJournalOpen(sqlite3_file *pJfd){
  MemJournal *p = (MemJournal *)pJfd;
  assert( EIGHT_BYTE_ALIGNMENT(p) );
//# define EIGHT_BYTE_ALIGNMENT(X)   ((((char*)(X) - (char*)0)&7)==0)//八位比特对齐
  memset(p, 0, sqlite3MemJournalSize());
//将p所指向的某一块内存中的所有字节的内容全部设置为0指定的ASCII值
  p->pMethod = (sqlite3_io_methods*)&MemJournalMethods;
//设置内存日志文件MemJournal的操作集指针
}