Oui en effet c'est une bonne question. Je dirais que ça dépend de ce que tu veux faire. Je vois à peu près deux cas possibles :
- soit tu connais la position que tu veux atteindre (par rapport au début du fichier par exemple), (dans ce cas tu utilisera SEEK_SET). Comment est- ce que tu peux connaître cette position ? eh bien, le plus simple, tu as enregistré que des caractères sur ton fichier, tu sais que un caractère prend un octet, donc pour te placer sur le cinquième caractère tu fais fseek(pfichier,5,SEEK_SET); petit rappel des tailles de chaque type :
char c; // 1 octet
short a; //2 octets
unsigned int b; //2 octets
int d; // 4 octets
long e; // 4 octets
unsigned long f; // 4 octets
float g; // 4 octets
double h; // 8 octets
long double i; // 10 octets
Sinon ce qui peux se passer aussi ( et ça peut être utile ) c'est que tu peux utiliser la fonction ftell qui rend la position actuelle
FILE* pfichier;
ftell(pfichier);
par exemple, tu est arrivé à un endroit et tu veux recopier la valeur à la fin du fichier et revenir ensuite à cet endroit :
long position;
fread(adresse,taille,nombre,pfichier);//lit un certain nombre d'éléments
position=ftell(pfichier);//retiens la position a la suite de ces éléments
fseek(pfichier,0,SEEK_END);//va a la fin
fwrite(adresse,taille,nombre,pfichier);//ecrit les éléments
fseek(pfichier,position,SEEK_SET);//retourne a la position initiale
- le deuxième cas c'est si tu veux sauter un certain nombre d'octets apres la position actuelle. Par exemple, tu as fait une structure POINT_t est tu veux aller trois points plus loin
fseek(3*sizeof(POINT_t));
//sizeof(type) te donne la taille d'un certain type
//... c'est tres util pour les structures
voilà je crois que tu as tous les outils pour partir à l'exploration de tes fichiers.