如何读取 emscripten 编译库中用户指定的文件?

2023-11-25

我目前正在开发一个带有 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(使用前将#替换为@)

如何读取 emscripten 编译库中用户指定的文件? 的相关文章

随机推荐

  • Android 屏幕在显示/隐藏系统栏时闪烁

    问题 我想在用户向上滚动 RecyclerView 时显示系统栏 并在用户向下滚动时隐藏系统栏 然而 使用我的方法它可以工作 但内容在显示 隐藏过程中奇怪地移动和闪烁 您在此处上传了该行为的视频 https drive google com
  • 获取 Java 堆栈跟踪中涉及的对象

    我可以使用检索当前堆栈跟踪Thread currentThread getStackTrace 但这只给了我调用中涉及的类 是否可以检索调用跟踪中涉及的对象实例 也许某种库允许我从堆中检索对象 我有一个问题 需要我追溯到一个 Spring
  • 如何在 numpy 中对二维数组进行装箱?

    我是 numpy 的新手 我有一个 2D 对象数组 我需要将其装入一个较小的矩阵中 然后获取每个容器中对象的数量以制作热图 我按照答案在这个线程上创建垃圾箱并对一个简单的数组进行计数 但我不确定如何将其扩展到二维 这是我到目前为止所拥有的
  • 如何在没有 Activity/Service 的情况下创建 BroadcastReceiver?

    我正在尝试创建没有活动 服务的 BroadcastReceiver 虽然当代码中存在活动时 当我删除活动时 注册和执行代码没有问题 但它失败了 我确实使用清单注册了 BroadcastReceiver 但是当从项目中删除活动时 它不会被调用
  • Java-声明新的泛型集时出现意外的类型错误

    我以为我知道我在用泛型做什么 但显然不知道 ArraySetList
  • 在Python中绘制二维矩阵,代码和最有用的可视化

    我有一个非常大的矩阵 10x55678 采用 numpy 矩阵格式 该矩阵的行对应于一些 主题 列对应于单词 文本语料库中的唯一单词 该矩阵中的每个条目 i j 都是一个概率 这意味着单词 j 以概率 x 属于主题 i 因为我使用的是 id
  • 如何使用IntentCompat.makeRestartActivityTask()?

    我正在尝试实现一个按钮 该按钮将导致我的应用程序返回到第一个活动并表现得好像它 几乎 重新启动了一样 这段代码 Intent newIntent new Intent currentActivity getApplicationContex
  • 如何在 php 中将奇怪的强/粗体 Unicode 转换为非粗体 UTF-8 字符?

    我正在尝试使用 twitter api 在我的数据库中存储一条推文 但我得到了这种 stage 字符 它似乎是 自然 粗体字符 普通字符 azertyuio 奇怪的字符 如果我在我的 netbeans 编辑器中粘贴最强的字符 我会得到类似方
  • 通过 VBScript 了解用户是否具有管理权限的最佳方法

    我需要检查执行脚本的用户是否具有计算机的管理权限 我已经指定了执行脚本的用户 因为该脚本可以使用除使用类似于 Runas 的用户登录之外的用户执行 Javier 这两种解决方案都可以在安装了英文版 Windows 的 PC 上运行 但如果安
  • 获取 contenteditable div 中的插入符索引(包括标签)

    我有一个contentEditable div其中我有多个标签 br b u i 和文本 我需要获取相对于 div 的插入符索引位置 包括所有标签 例如 div abc b def br ghi b jkl div 如果光标位于g and
  • 调用派生类的构造函数在基类的构造函数之前执行

    好吧 最初我在每个派生类中都有几个具有不同值的常量 例如 MAX SPEED 这个想法是在基类的某些方法中使用这些值 就在那时 我意识到我无法使用常量来做到这一点 因此我创建了只读属性 我需要一种方法在实例化时将这些值分配给私有字段 最好是
  • 为什么法线使用相机空间而不是模型空间?

    我正在学习 OpenGL 图形 并且正在学习阴影 我正在阅读的教程告诉我将法线和光矢量转换为相机空间 为什么是这样 为什么不能将坐标保留在模型空间中 随之而来的问题是如何处理模型转换 我无法找到明确的答案 我目前有这个代码 vec3 nor
  • 您可以在 irb 会话中自动在每个命令中“要求”ruby 文件吗?

    我当前正在编辑一个文件 并使用 irb 来测试 api gt require file rb gt o Object new gt o method 然后我希望能够编辑 file rb 并能够立即看到更改 示例 假设当我第一次需要 file
  • 包管理器名称未找到异常

    我是安卓编程新手 我使用 Eclipse 以及 MainActivity java 和 ClassFragment java 文件创建了一个应用程序 ClassFragment 是一个片段 我正在使用新更新的 appcompat 库 我只想
  • GLSL:关于相干限定符

    我没明白如何coherent限定符和原子操作一起工作 我使用以下代码在同一 SSBO 位置上执行一些累积操作 uint prevValue newValue uint readValue ssbo index do prevValue re
  • Blazor:没有会话/JWT 令牌时重定向到登录页面?

    我正在尝试在 Blazor 中创建一个新应用程序并正在进行身份验证 我正在使用存储在本地存储中的 JWT 令牌 当应用程序加载时 我需要检查存储中是否有令牌 如果是这样 请将其添加到所有 API 请求的 HTTP 标头中 如果不是 则在页面
  • 在 Swift 中旋转 UIImage

    我正在使用 Xcode 6 0 1 和 Swift 我有一个 UIImage 我想使用旧图像作为源来制作另一个图像 新图像以某种方式旋转 比如说垂直翻转 这个问题已经有答案了几个月前 然而 即使情况相同 该解决方案对我不起作用 当我有 va
  • Application.OnKey 无法正确重置

    I am trying to help another user in this forum reference The goal is to use the Enter key on the numeric keypad to trigg
  • Python、Matplotlib、绘制多线(数组)和动画

    我开始使用 Python 和 OOP 编程 但我在 Fortran 90 95 和 Matlab 编程方面拥有丰富的经验 我正在 tkinter 环境上使用动画开发一个小工具 该工具的目标是对多行进行动画处理 数组而不是数据向量 下面是我的
  • 如何读取 emscripten 编译库中用户指定的文件?

    我目前正在开发一个带有 emscripten 编译支持的 C 文件解析库 它从用户处获取文件路径 在其中读取二进制文件并解析它 据我所知 emscripten 不支持直接加载文件 而是使用虚拟文件系统 有没有办法将给定路径上的文件加载到虚拟