什么是伯克利DB魔术数?

时间:2015-08-17 06:33:35

标签: berkeley-db

具有原生字节顺序的Berkeley DB v9 Btree的幻数是多少?魔术数字上是否有任何特定的长度或任何简单的方法来识别它们?

1 个答案:

答案 0 :(得分:1)

你发现它是0x00053162。我假设按本机字节顺序,你的意思是x86本机字节顺序?如果你对文件进行hexdump,你会看到它以字节12-15,byteswapped(为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)的联机帮助页中给出:{{ 3}}