Accès direct suite ...

Accès au troisième point d'un fichier

#include<stdio.h>
typedef struct {
                      int x;
                      int y;
                     } point;
int main(void)
{
FILE* f;
point p;
f = fopen("sauverPoints.bin", "rb");
if (f = = NULL)
    printf ("Erreur ...");
else
   {
/* on lit le 3ème point */
     fseek(f, sizeof(point)*2, SEEK_SET);
     fread(&p, sizeof(point),1,f);

     printf("Le troisième point du fichier: (%d,%d)\n", p.x,p.y);
   
}
fclose(f);  
}
Accès à l'avant dernier point d'un fichier

#include<stdio.h>
typedef struct {
                      int x;
                      int y;
                     } point;
int main(void)
{
FILE* f;
point p;
f = fopen("sauverPoints.bin", "rb");
if (f = = NULL)
    printf ("Erreur ...");
else
   {
/* on lit l'avant dernier point */
     fseek(f, - (sizeof(point)*2), SEEK_END);
     fread(&p, sizeof(point),1,f);

     printf("L avant dernier point du fichier: (%d,%d)\n", p.x,p.y);
   
}
fclose(f);  
}
Il faut admettre que qu'au vu de l'évolution technologique du matériel (rapidité des accès disques, mémoire cache performante, ...) l'intérêt de l'accès direct ne se justifie que sur de très gros fichiers qui sont en fait de grosses bases de données. Or les SGBD actuels intégrent des techniques d'accès direct intégré et transparentes pour l'utilisateur. Un programmeur est de plus en plus rarement amené à gérer des fichiers en accès direct.


suivant           plan