Section courante

A propos

Section administrative du site

FSEEK

Position dans le fichier
Langage C stdio.h

Syntaxe

int fseek(FILE *ptrfichier,long offset,int base);

Paramètres

Nom Description
ptrfichier Ce paramètre permet d'indiquer l'identificateur du fichier
offset Ce paramètre permet d'indiquer la position du pointeur dans le fichier
base Ce paramètre permet d'indiquer le mode d'ouverture combiné du fichier
Constante Description
SEEK_CUR Cette constante indique un positionnement à partir de la position courante dans le fichier
SEEK_END Cette valeur indique un positionnement à partir de la position de la fin dans le fichier
SEEK_SET Cette valeur indique un positionnement à partir de la position du début dans le fichier

Description

Cette fonction permet d'effectuer la position du pointeur de fichier.

Algorithme

MODULE FSEEK(stream, offset, whence)
   SI stream est NULL ALORS
      RETOURNE erreur "Flux non valide"
   FIN SI

   SI whence est invalide (n'est pas SEEK_SET, SEEK_CUR ou SEEK_END) ALORS
      RETOURNE erreur "Valeur de whence invalide"
   FIN SI

   SI l'accès au fichier est impossible pour modifier la position ALORS
      RETOURNE erreur "Impossible de déplacer le curseur"
   FIN SI

   EVALUER whence
      CAS SEEK_SET
         Positionner le curseur à l'offset par rapport au début du fichier
      CAS SEEK_CUR
         Positionner le curseur à l'offset relatif à la position actuelle
      CAS SEEK_END
         Positionner le curseur à l'offset relatif à la fin du fichier
   FIN EVALUER

   SI le déplacement est réussi ALORS
      RETOURNE 0 * Succès
   SINON
      RETOURNE une erreur (par exemple, -1) * Si le déplacement échoue
   FIN SI

Remarques

Exemple

Prenons pour acquis que le fichier «readtext.txt» est le contenu :

Ceci est un exemple de fseek sur le site de Gladir.com

Voici un exemple montrant une utilisation plus classique de cette fonction :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     FILE * Handle = fopen("readtext.txt", "r");
  7.     if(Handle != NULL) {
  8.         char Temp[4];
  9.         int I;
  10.         Temp[3] = 0;
  11.         for(I = 0; I <= 3; I++) {
  12.             fseek(Handle,I * 8, SEEK_SET);
  13.             fread(&Temp,3,1,Handle);
  14.             printf("%i:%s\n",I,Temp);
  15.         }
  16.         fclose(Handle);
  17.     }
  18.     return 0;
  19. }

on obtiendra le résultat suivant :

0:Cec
1: un
2:ple
3:see

Voir également

Langage de programmation - C - Référence de procédures et fonctions - fgetpos
Langage de programmation - C - Référence de procédures et fonctions - fopen
Langage de programmation - C - Référence de procédures et fonctions - fsetpos
Langage de programmation - C - Référence de procédures et fonctions - ftell
Langage de programmation - C - Référence de procédures et fonctions - rewind
Langage de programmation - C++ - Référence de procédures et fonctions - fseek

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 732.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 114.

Dernière mise à jour : Mardi, le 28 juillet 2015