我有一个在desktop(用gcc 10为x86_64 arch编译)和emscripten(用emscripten编译并通过nodejs运行)中运行的应用程序。这段代码生成了一些我需要保存的文件。
在x86_64的情况下,它非常简单,我只是使用std::ofstream,但在emscripten的情况下,我不知道如何继续。我读过wiki,它说emscripten提供的文件系统是虚拟的,存在于内存中,但他们也说有一些方法可以将文件保存到主机文件系统(https://emscripten.org/docs/api_reference/Filesystem-API.html)。
但是,我还不能将文件从emscripten直接保存到主机文件系统
我将欣赏一个关于如何使用emscripten保存文件的例子。
作为一个例子,我正在努力实现,
main.cpp:
#include <fstream>
int main()
{
std::ofstream os("log.txt", std::ios::trunc);
os << "a";
}
编译
em++ main.cpp
并执行为
node a.out.wasm
问题是这并不能保存log.txt
。我如何告诉emscripten将该文件写入我的主机文件系统?
1条答案
按热度按时间8ehkhllq1#
编辑:@jjcasmar是正确的,这个选项需要文件在编译时存在,所以我的答案是错误的
在编译代码时,您可以使用
--preload-file
参数,以给予代码能够访问文件:你可以从这个question看到我的另一个答案。