我目前正在开发一个带有 emscripten 编译支持的 C 文件解析库。它从用户处获取文件路径,在其中读取二进制文件并解析它。
据我所知,emscripten 不支持直接加载文件,而是使用虚拟文件系统。有没有办法将给定路径上的文件加载到虚拟文件系统中,以便 emscripten 编译的 C lib 可以读取它?我正在寻找适用于 NodeJS 和浏览器的解决方案。
如果你想将此文件直接编译到库中,你可以使用--preload-file
or --embed-file
选项。像这样:
emcc main.cpp -o main.html --preload-file /tmp/my@/home/caiiiycuk/test.file
之后在C中就可以正常打开这个文件了:
fopen("/home/caiiiycuk/test.file", "rb")
或者你可以使用 emscripten JavaScriptfs-api,例如使用 AJAX:
$.ajax({
url: "/dataurl",
type: 'GET',
beforeSend: function (xhr) {
xhr.overrideMimeType("text/plain; charset=x-user-defined");
},
success: function( data ) {
Module['FS_createDataFile']("/tmp", "test.file", data, true, true);
}
});
之后你可以从C打开这个文件。
这也不是将数据传递到 C 代码的最佳方法,您可以直接在内存中传递数据,阅读有关此内容的内容.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)