У меня есть следующий фрагмент кода C
, который находится на крючке для компиляции в WebAssembly
.
# 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
:
emcc write.c -s WASM=1 -o write.html
Однако, когда я пытался использовать движок JS (например,v8
) чтобы выполнить этот кусок кода, я просто не могу найти полученный вывод.Также я не получил никакой ошибки:
➜ test_code ~/v8/v8/out/x64.release/d8 write.js
➜ test_code
Так что, согласно моему пониманию, код wasm
должен использовать JS
для использования некоторых системных функций, таких как операторы, связанные с вводом / выводом.А может быть, не разрешено «манипулировать» файловой системой в этой среде браузера?Потому что в целом то, что происходит внутри браузера, должно оставаться внутри браузера.
Поэтому я пишу, чтобы узнать, как лучше перенести C-программу, связанную с файловым вводом-выводом, в среду WebAssembly
.Любой комментарий будет оценен.Благодаря.