我试图为我的多线程应用程序创建共享的内存数据库,但它似乎不起作用。我用过:
sqlite3_open("file:memdb1?mode=memory&cache=shared", &self->readdb)
就像这里描述的那样:https://www.sqlite.org/inmemorydb.html
但是,它只是创建了一个名为file:memdb1?mode=memory&cache=shared
的常规文件,该文件似乎只是常规文件:
lapsio@linux-tiph > stat file:memdb1\?mode=memory\&cache=shared
File: 'file:memdb1?mode=memory&cache=shared'
Size: 9216 Blocks: 24 IO Block: 4096 regular file
Device: 2fh/47d Inode: 109010 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ lapsio) Gid: ( 100/ users)
Access: 2018-06-24 13:46:48.435300970 +0200
Modify: 2018-06-24 13:47:07.139406989 +0200
Change: 2018-06-24 13:47:07.139406989 +0200
Birth: -
我的SQlite版本是
sqlite3 --version
3.8.10.2 2015-05-20 18:17:19 2ef4f3a5b1d1d0c4338f8243d40a2452cc1f7fe4
答案 0 :(得分:1)
它要求文件sqlite3_config(SQLITE_CONFIG_URI,1)
明确启用文件URI,如此处所述:https://www.sqlite.org/uri.html