E/S haut /bas niveau sur fichiers et différences Unix/Windows. [C] - C++ - Programmation
Marsh Posté le 22-06-2002 à 09:07:12
tu doa parler des descripteurs de fichiers
jette un oeil aux man de open, read, write
pour ne coder que sous GNU/linux je sais po te dire pour la portabilite desole
Marsh Posté le 22-06-2002 à 16:03:11
les entrées/sorties bufferisées peuvent poser problème, quand tu dialogue avec un périphérique.
autrement quand tu fais des ios bufferisées avec un fichier je vois pas le problème.... (du moins comme ça )
fo voir comment tu les manipules tes fichiers...
vo pas mieux que tu le recharge complètement en ram puis que tu le mettes à jour ?
c'est quoi la taille moyenne des tes fichiers ? si c'est < 100ko je pense que c'est plus interressant de le charger en ram et de le réécrire complètement. bon si c'est un fichier de 50mo ou plus là vo mieux que le modifier ou tu as besoin......
Marsh Posté le 22-06-2002 à 16:05:25
attention si tu est en "append", avant chaque écriture, ton pointeur est remis en fin de fichier....
http://www.idi.ntnu.no/~mariusbu/AnsiC/FOPEN2829.html
Marsh Posté le 22-06-2002 à 04:53:59
Je développe actuellement un programme sous Linux faisant beaucoup de mises à jours de fichiers. J'utilise les entrées/sorties de haut niveau (bufferisées) et les fichiers résultant ne correspondent pas à ce qu'ils devraient être. Certaines écritures ne se font pas ou alors au mauvais endroit et j'ai beau rajouter des fflush avant ou après des fwrite ou des fseek, ça ne change rien du tout !
J'ai toujours entendu dire qu'on utilisait les entrées/sorties haut-niveau sous Windows et les bas-niveau sous Unix. Qu'en est-il exactement ? Est ce une obligation, une question de compatibilité ?
Mon programme aura t'il un comportement normal si je le compile sous Windows ? Parce que je n'arrive vraiment pas à trouver mes erreurs
Merci d'avance
Message édité par JBM le 22-06-2002 à 04:54:44