Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >写入WebAssembly中的文件

写入WebAssembly中的文件
EN

Stack Overflow用户
提问于 2018-11-26 03:48:38
回答 1查看 3.3K关注 0票数 2

我有下面的C代码,它挂在钩子上,要编译成WebAssembly

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# include <stdio.h>

int main() {

FILE *f = fopen("file.txt", "w");
if (f == NULL)
{
            printf("Error opening file!\n");
            return 0;
}

/* print some text */
const char *text = "Write this to the file";
fprintf(f, "Some text: %s\n", text);

/* print integers and floats */
int i = 1;
float py = 3.1415927;
fprintf(f, "Integer: %d, float: %f\n", i, py);

char c = 'A';
fprintf(f, "A character: %c\n", c);

fclose(f);

return 0;

}

因此,我使用以下命令生成一个wasm文件和相应的js文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
emcc write.c -s WASM=1 -o write.html

但是,当我试图使用JS引擎(如v8)执行这段代码时,我根本找不到生成的输出。我也没有收到任何错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
➜  test_code ~/v8/v8/out/x64.release/d8 write.js
➜  test_code 

因此,根据我的理解,wasm代码需要利用JS来使用一些与系统相关的功能,比如I/O相关操作符。也许它不允许在这个浏览器环境中“操纵”文件系统?因为通常情况下,浏览器内部发生的事情应该停留在浏览器中。

因此,我写这封信是想了解将文件I/O相关的C程序迁移到WebAssembly环境的最佳实践。如有任何意见,将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-26 06:45:15

preamble.js确实有一个用于I/O写的write函数(v8/src/d8.cc?l=1706),但是Emscripten的shell.js从未将它用于简单的JS。如果你想让它在简单的JS shell中工作,你需要对Emscripten的代码进行一些黑客攻击。尝试探索emscripten/src/library_fs.js

编辑:刚刚意识到d8的write功能只有stdout,所以这不是你想要的。看起来,从简单的JS shell编写文件是不可能的(它们只供JS引擎开发人员测试)。

我没有验证这一点,但我认为在Node.js中运行测试代码时,I/O写可能会开箱即用。

跟进问题:

Emscripten通过预处理和连接shell.jspreamble.jspostamble.js以及在编译时从emscripten.pycompiler.js生成的一些代码来生成JS包装代码。JS代码的预处理使用C风格的预处理器(#if#else)加上一些{{{ }}},这就是为什么Emscripten的JS代码看起来非常有趣的原因。

许多C函数是在C和JS中一起实现的。C-它的一部分直接链接到WebAssembly (请参阅它们的实现这里),JS-它的一部分是用library_*.js这里下实现的。

目前,Chrome是唯一拥有网络FileSystem API的浏览器。谷歌和Mozilla目前正致力于可写文件API的标准化。大多数人的第一个反应将是“这是个坏主意”,但由于浏览器已经允许在用户系统(沙箱中)执行不受信任的代码,编写文件可能不是浏览器可以做的最危险的事情(https://twitter.com/ericlaw/status/1066149633855053825)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53480465

复制
相关文章
Hadoop中HDFS写入文件的原理剖析
要为即将到来的大数据时代最准备不是,下面的大白话简单记录了Hadoop中HDFS在存储文件时都做了哪些个事情,位将来集群问题的排查提供一些参考依据。
星哥玩云
2022/07/04
7990
python 将读取的数据写入txt文件_c中怎样将数据写入txt文件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
6.5K0
将文件夹中的文件信息统计写入到csv中
今天在整理一些资料,将图片的名字信息保存到表格中,由于数据有些多所以就写了一个小程序用来自动将相应的文件夹下的文件名字信息全部写入到csv文件中,一秒钟搞定文件信息的保存,省时省力!
小海怪的互联网
2019/09/18
9.2K0
文件的读取写入
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
bering
2019/12/03
2.7K0
scanf从文件中读入,printf写入到文件
重定向方式读写文件 #include <stdio.h> #define LOCAL int main() { #ifdef LOCAL freopen("input.txt","r",stdin); //使得scanf从文件input.txt读入 //r只读,如果文件不存在,出错 freopen("output.txt","w",stdout); //使得printf写入文件output.txt //w只写,如果文件不存在,建立新文件 #en
谙忆
2021/01/19
7240
关于Python中读取写入文件并进行文件
在python中是同样和其他语言一样可以进行文件的读取写入操作,值得注意的是,Python中打开文件读取的方式有几种,分别是以下几种:
py3study
2020/01/20
9950
java写入文件
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106359.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/30
2K0
lua文件写入
mode 作用 r 读,文件不存在则报错 w 写,若文件存在则覆盖重写,若文件不存在则新建 a 写,若文件不存在,则新建;如果文件存在,则在文件尾追加要写的内容 r+ 读写,文件不存在则报错 w+ 读写,若文件存在则覆盖重写,若文件不存在则新建 a+ 读写,若文件不存在,则新建;如果文件存在,则在文件尾追加要写的内容 b 以二进制模式打开文件 file=io.open("/test.txt","r") io.input(file)-- 设置默认输入文件 print(io.read()) io.close(
司夜
2023/03/31
2.1K0
简单的写入文件 原
    $success_ = date("Y-m-d-H-i-s").'_resp.txt';     file_put_contents($success_, $resp);//记录xml
双面人
2019/04/10
9840
文件操作——写入
前面我们说到了文件的读取,读取的文件是我们手动创建的txt文本文档,VBA也是可以对文件进行写操作的。
xyj
2020/07/28
2.9K0
文件操作——写入
Python中Json文件的读入和写入以及simplejson
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript ProgrammingLanguage, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java,JavaScript, Perl, Python等)。
张凝可
2019/08/22
2.6K0
Jmeter写入文件
一. 场景 之前我们推文讨论过如何使用jmeter读取文件, 比如csv, txt文件读取, 只要配置csv数据文件, 即可非常容易的从文件中读取想要的数据, 但是如果数据已经从API或者DB中获取
louiezhou001
2019/07/25
2.3K0
Jmeter写入文件
python写入txt文件中文乱码_python中怎么输入文件
原因是print不完全, 添加代码设置 np.set_printoptions(threshold=np.nan) 如果报错 ValueError: threshold must be numeric and non-NAN, try sys.maxsize for untruncated representation 只需要import sys 设置np.set_printoptions(threshold=sys.maxsize)或者将阈值设置在一个较大的数值就可以了
全栈程序员站长
2022/09/27
2.7K0
python写入txt文件中文乱码_python中怎么输入文件
python文件操作读取文件写入文件
要使用文本文件中的信息,首先需要将信息读取到内存中。为此,你可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。
章鱼喵
2018/09/26
11.3K0
将List<Map>中的datas转换为json格式写入文件
private static boolean writeToTextFileByJson(List<Map<String, Object>> datas, String title, String columns, String fileName, String encode) { final BufferedWriter bw; boolean flag = true; try { boolean hasExists = new File(fileName).exists();
用户3003813
2018/09/06
6.6K0
Python 文件的创建和写入
文件的创建和写入 利用内置函数open获取文件对象 功能 生成文件对象,进行创建,读写操作 用法 open(path, mode) 参数说明 path:文件路径 mode:操作模式 返回值 文件对象 举例 f = open('d://a.txt', 'w') 文件操作的模式之写入 模式 介绍 w 创建文件 w+ 创建文件并读取文件 wb 二进制形式创建文件 wb+ 二进制形式创建或追加内容 a 追加内容 a+ 读写模式的追加 ab+ 二进制形式读写追加 文件对象的操作方式之写入保存 方法名 参数 介绍 举
Zkeq
2022/05/18
9270
将文件字节输出流写入到文本中
1 package DEMO; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.OutputStream; 7 import java.util.Scanner; 8 9 /* 10 * 文件字节输出流 2014-7-29 11 * 1.给出输出流的目的地 12 * 2.创建指向目的地的输出流 13
Gxjun
2018/03/22
2.6K0
将文件字节输出流写入到文本中
js写入文件的方式 转
度娘找到,在谷歌等浏览器下都可使用 Html内容: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title>
晓歌
2018/08/15
3.7K0
Python write()和writelines():向文件中写入数据
Python中的文件对象提供了 write() 函数,可以向文件中写入指定内容。该函数的语法格式如下:
用户8442333
2021/11/30
1.8K0
Python读取文件和写入文件
函数open(filename,mode)用于读取文件,返回一个file object。 所以现在我们的f是一个文件对象
TeeyoHuang
2019/05/25
3.6K0

相似问题

WebAssembly/emscripten:在浏览器中将文件写入磁盘

10

解码.wasm WebAssembly文件

146

如何在Webassembly中获取JSON文件

171

单文件WebAssembly html演示

20

如何通过WebAssembly写入浏览器的控制台?

59
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文