伯克利数据库的魔力数字是什么?



使用本地字节顺序的Berkeley DB v9 b树的神奇数字是什么?幻数有特定的长度吗?或者有什么简单的方法来识别它们吗?

您已经发现它是0x00053162。我猜你说的原生字节顺序,是指x86原生字节顺序吧?如果对文件进行十六进制转储,您将看到它的字节数为12-15,字节数为3162 0005,因为它是x86):

hexdump blah.db | head -1
0000000 0001 0000 9fbc 0009 0000 0000 3162 0005
0000010 0009 0000 1000 0000 0900 0001 0000 0000

版本在下一个uint32_t中,16-19字节。在这里,它是0009 0000,这是版本9在小端语。事实上,从偏移量12开始的整个字节序列看起来是struct __db_bt_stat,其内容在db_stat(或Db::stat)的手册中给出:http://www.mit.edu/afs.new/athena/astaff/source/src-9.0/third/db/docs/api_cxx/Db/stat.html

最新更新