J'ai un code C que je voudrais exécuter dans un navigateur (testé avec Firefox 64.0). Le code C écrit un fichier sur le disque.
J'essaie d'utiliser l'API du système de fichiers d'emscripten depuis de nombreuses heures maintenant et je n'arrive à rien.
J'ai lu ceci question pertinente et le emscripten doc déclare la même chose :
- si votre code C/C++ utilise des fichiers, le support du système de fichiers sera automatiquement inclus.
Voici mon code de test qui utilise le système de fichiers :
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *f = fopen("testfile.txt", "w");
if (f == NULL) {
printf("Error opening file!\n");
exit(1);
}
const char *text = "This is my test string";
int i = 1234;
fprintf(f, "Some text: %s; and an int: %d\n", text, i);
fclose(f);
printf("End of file.\n");
}
Après avoir compilé ce code avec :
emcc test.c -o test.html
En l'ouvrant avec Firefox, je m'attendais initialement à ce que le fichier soit enregistré sur ma machine. (Je n'ai pas d'expérience en JS). Je suis maintenant presque certain que cela ne fonctionne pas comme cela.
Le fichier est accessible en tant que Uint8Array via :
var array = FS.readfile("testfile.txt")
dans la console.
Plus précisément, je m'intéresse maintenant à ceci :
- Existe-t-il un moyen d'écrire un fichier dans mon système de fichiers local à partir du navigateur ?
- Puis-je télécharger le fichier créé d'une manière ou d'une autre ?
Merci pour votre temps.