在多个应用程序之间共享内存 SQLite 数据库

Sim*_*ott 4 c sqlite

可以创建内存中的 SQlite 数据库:

rc = sqlite3_open(":memory:", &db);
Run Code Online (Sandbox Code Playgroud)

但如果我理解了文档,那么该数据库对于创建它的应用程序来说是本地的。

我需要一个可以由多个应用程序访问的内存 SQLite 数据库。除了在虚拟磁盘上创建数据库之外,还有其他方法吗?

这是针对嵌入式Linux 平台的。

Don*_*ows 5

你不能跨进程共享内存数据库\xe2\x80\x93,这确实是不是为了这样做而设计的,因为它缺乏正确的完整性承诺(但这确实意味着它更快) \xe2\x80\x93 所以要么将数据库放在更永久的存储上(例如 ramdisk)或将数据库放在单个进程中(\xe2\x80\x9cdatabase manager\xe2\x80\x9d)并使用某种形式的本地通信策略(unix 域套接字) 、命名管道等)以允许其他进程要求数据库管理器为它们执行查询。

\n