J'ai un fichier que je cherche à lire, fichier que j'ouvre avec open.
Je porte du code de Linux vers Windows, j'ai bien vérifié que la version originale (Linux) fonctionnait.
Sous windows, j'utilise MinGW, et là j'ai un problème.
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 fd = open(Ir_File, O_RDONLY|O_BINARY); if (read(fd, &head, sizeof(IR_Header)) != sizeof(IR_Header)) return 1; if (read(fd, &metatable, NUM_OF_TABLES * sizeof(MetaTable_t)) != NUM_OF_TABLES * sizeof(MetaTable_t)) return 2;
J'ouvrais d'abord mon fichier sans l'option O_BINARY, la rajouter n'a rien changé au problème.
A l'exécution sous Windows, le premier if passe, mais pas le second. A l'exécution sous Linux, les deux passent.
Il semblerait que ça soit un problème lié au charactère EOF, que l'ajout de l'option O_BINARY aurait dû résoudre. Et donc je ne sais pas quoi faire d'autre
Je ne pense pas que ça soit en cause, mais l'ouverture et la lecture du fichier ne se font pas dans le même fichier source (je passe le file descriptor en paramètre d'une fonction).
Partager