gpt4 book ai didi

linux - Linux 和 OS X 上的 Sqlite 数据文件不兼容?

转载 作者:可可西里 更新时间:2023-11-01 11:50:44 24 4
gpt4 key购买 nike

我通过在 ARM Linux 机器上执行以下命令来创建一个表并填充它

~ # sqlite3 /mnt/mmc/test.db
SQLite version 3.6.12
sqlite> create table a (d);
sqlite> insert into a values (1.5);
sqlite> select * from a;
1.5

然后我将文件传输到我的 Mac 并执行以下操作

themac:~ me$ sqlite3 test.db 
SQLite version 3.6.12
sqlite> select * from a;
5.30239915051991e-315

什么?我认为数据文件是独立于平台的。

最佳答案

我对 SQLite 没有特别的了解,但这表明存在一个问题,其中交换了 64 位 IEEE 754 格式 double 的两个 32 位字,如您在此处所见示例(在 x86 机器上使用 gcc 运行):

$ cat test.c
#include <stdio.h>

int main(void)
{
union {
double d;
unsigned long long ull;
} u;

u.d = 1.5;
printf("%016llx\n", u.ull);

u.d = 5.30239915051991e-315;
printf("%016llx\n", u.ull);

return 0;
}
$ gcc -Wall -o test test.c$ ./test3ff8000000000000000000003ff80000$ 

关于linux - Linux 和 OS X 上的 Sqlite 数据文件不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5084037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com