相关疑难解决方法(0)

为一个emscripten HTML程序提供stdin?

我有一个C程序,它通过命令行接受一个参数(一个char数组/字符串),并从stdin读取.我使用emscripten将其编译为JavaScript.这是成功的,我可以像使用node.js的普通C程序一样运行它:

emcc -O2 translate.c
node translate.js "foo" < bar.txt
Run Code Online (Sandbox Code Playgroud)

如您所见,我提供字符串"foo"作为参数,bar.txt的内容为stdin.现在我希望这是一个自包含的HTML文件.

通过将输出更改为HTML:

emcc -O2 translate.c -o trans.html
Run Code Online (Sandbox Code Playgroud)

我通过添加arguments: ['foo'],到中的定义来提供参数var Module.这按预期工作,程序正确接收参数.

现在,我如何为此程序提供stdin输入?我不需要动态地这样做.只需在HTML中的某个地方声明一个包含所需stdin内容的字符串即可.

编辑

刚刚找到了适合我的解决方案.在生成HTML的JS文件中,prompt()当没有定义其他输入方法时,有一个默认的输入处理程序是用户.只需编辑变量result或调用您自己的函数:

} else if (typeof window != 'undefined' &&
    typeof window.prompt == 'function') {
    // Browser.

    // REPLACE THIS CODE:
    result = window.prompt('Input: ');  // returns null on cancel
    if (result !== null) {
        result += '\n';
    }
Run Code Online (Sandbox Code Playgroud)

javascript emscripten

10
推荐指数
2
解决办法
2472
查看次数

标签 统计

emscripten ×1

javascript ×1