首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >征文与坚持

征文与坚持
EN

Stack Overflow用户
提问于 2014-04-29 22:11:30
回答 1查看 1.6K关注 0票数 2

我在试着让某种毅力和应征码一起工作.

我要做的(作为概念的证明)是,每次点击页面时,时间都会添加到文件的末尾

目前它似乎每次运行时都会重新创建该文件.

以下是相关的代码

代码语言:javascript
复制
EM_ASM(
    FS.mkdir('/IDBFS');
    FS.mount(IDBFS, {}, '/IDBFS');
    FS.syncfs(true, function (err) {
        assert(!err);
    }); // sync FROM backing store
);

int c;
FILE *file;
file = fopen("/IDBFS/test.txt", "a");

if (file) {
    time_t rawtime;
    struct tm * timeinfo;

    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    fprintf ( file, "time:%s\n", asctime (timeinfo) );

    fclose(file);

    EM_ASM(     
        FS.syncfs(function (err) { // sync TO backing store
            assert(!err);
        });
    );

    file = fopen("/IDBFS/test.txt", "r");
    while ((c = getc(file)) != EOF)
        printf("%c",c);
    fclose(file);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-30 18:55:21

这里的问题似乎是syncfs是一个异步操作,但是您把它当作是同步的。

您必须等到syncfs的回调被触发(从备份存储同步时)才能打开和读取您的文件。

作为一个例子,请参见:sync.c

它使用ccall()在回调完成后调用C函数。另外,请注意使用emscripten_exit_with_live_runtime来保持程序运行,即使main已经返回。

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

https://stackoverflow.com/questions/23376234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档