Salut,
Une question pratique à deux balles. Je suis un train d'écrire un système de lecture/ecriture trés bas niveau (faut gérer un système de recovery pour une application critique) et j'hésite entre utiliser directement:
- read/write (pas de buffer)
- ou fread/fwrite (stream, buffer)
J'étais joyeusement parti sur read/write, en recréant un buffer quand je me suis aperçu que fread/fwrite avait mon buffer! Mais comme je cherche un code clean et optimisé pour mon utilisation, j'aimerais savoir de quel buffer on parle:
1) c'est juste un buffer pour regrouper les commandes?
2) le buffer est intelligent et si j'écris le code dessous, il n'ira pas faire d'accés disque pour le lire le contenu mais il s'apercevra qu'il a déjà ce que je lui demande dans son buffer?
Code :
- FILE f = fopen("...", ".." );
- Page MyPageSave = new Page(...);
- Page MyPageLoad;
- fwrite((void*)MyPageSave, sizeof(MyPageSave), 1, f);
- fseek(f, -sizeof(MyPageSave), 0); // Retour au début de l'enregistrement précédent
- fread((void*)MyPageLoad, sizeof(MyPageLoad), 1, f);
|
(désolé pour les erreurs de code, c'est juste l'idée qui compte)
Merci de vos éclaircissements!
---------------
Horizon pas Net, reste à la buvette!!