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.
|