SQlite源码分析

函数sqlite3VdbeSerialPut

          写二进制序列化类型,将这些数据存储在pMem(Mem结构体类型)数据缓存中。这个功能使用的前提是假设调用者已经分配了足够的内存空间。返回已经写入的字节数。形参nBuf指定数组buf[]中可以使用的空间大小,同事需要注意nBuf的值必须足够大,能够存储所有的数据。如果说存储的数据是一个blob类型数据并且这个数据带有0维数的时候,buf[]数组只需要有合适的空间来存储非零的数据。如果数组足够大的空间,那么只能存储二进制数据前面非零的部分相应的也只会将前面非零数据写入buf[]缓冲区中。如果说buf[]缓冲区数组空间足够大能够存储前面非零数据和零尾我们只需要将前面非零写入缓冲区数组中,后面的数据直接设置为0.返回的值是已经全部写入缓冲区buf[]数组中的数据量的大小。在buf[]数组中0填充的尾部字节数被包含在返回值中,只有这些字节在数组中都是0.