現在Emscriptenを使用してC言語のソースからWebAssembly(or asm.js)にコンパイルした物を製作しています。
そこでサーバ上にあるファイルに書き込みを行いたいのですが上手くいきません。
emccのコンパイルオプションにて、--preload-fileを使用してWebAssemblyファイルにプログラム内で使用する外部ファイルを埋め込む方法があるのですが、これだと書き込みが出来なそうな気がしたので、--pre-jsで以下の様な先読み処理を書いた物を指定して実装しました。
Javascript
1Module['preRun'] = function () { 2 FS.createPreloadedFile( '', 'test.txt', 'test.txt', true, true ); 3};
上記の方法でファイルの読み込みは成功したのですが、書き込みが上手くいきませんでした。
書き込みに関してエラーは起きず、試しに書き込み処理の部分のコードだけ抜き出して普通のアプリケーションとして記述したものを実行したら書き込みが行われていたので、ソース上は問題無さそうです。
Emscriptenについて色々調べた結果、どうやらEmscriptenで扱うファイルはローカル上のメモリー内に仮想ファイルシステムを構築し、その中で外部ファイルを展開して扱うと言う様な感じがしました。
その為ファイルに出力した内容は、サーバ上にあるファイルに直接出力しているわけではない(?)様だと思われます。
参照サイト:Emscriptenのファイルシステム
そこでサーバ上にあるファイルに直接書き込みを行いたいのですが、どのような方法だと可能なのでしょうか。