Nous recommandons d’utiliser Visual Studio 2017

_lseek, _lseeki64

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Déplace un pointeur de fichier à l’emplacement spécifié.

  
      long _lseek(  
   int fd,  
   long offset,  
   int origin   
);  
__int64 _lseeki64(  
   int fd,  
   __int64 offset,  
   int origin   
);  

Paramètres

fd
Descripteur de fichier qui fait référence à un fichier ouvert.

décalage
Nombre d’octets à partir de origine.

origine
Position initiale.

_lseekRetourne l’offset, en octets, de la nouvelle position à partir du début du fichier. _lseeki64Retourne l’offset dans un entier 64 bits. La fonction retourne L-1 pour indiquer une erreur. Si passé un paramètre non valide, par exemple un descripteur de fichier incorrect, ou la valeur de origine n’est pas valide ou la position spécifiée par offset est avant le début du fichier, le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l’exécution est autorisée à se poursuivre, ces fonctions définissent errno à EBADF et retournent-1 L. Sur les périphériques incapables de recherche (tels que les terminaux et les imprimantes), la valeur de retour n’est pas définie.

Pour plus d’informations sur les autres codes d’erreur, consultez la page _doserrno, errno, _sys_errlist et _sys_nerr.

Le _lseek fonction déplace le pointeur de fichier associé fd vers un nouvel emplacement est offset octets à partir de origine. L’opération sur le fichier suivante se produit dans le nouvel emplacement. Le origine argument doit être une des constantes suivantes, qui sont définies dans Stdio.h.

SEEK_SET
Début du fichier.

SEEK_CUR
Position actuelle du pointeur de fichier.

SEEK_END
Fin du fichier.

Vous pouvez utiliser _lseek pour repositionner le pointeur n’importe où dans un fichier ou au-delà de la fin du fichier.

RoutineEn-tête requis
_lseek<io.h>
_lseeki64<io.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility dans l’introduction.

Toutes les versions des bibliothèques Runtime C.

// crt_lseek.c  
/* This program first opens a file named lseek.txt.  
 * It then uses _lseek to find the beginning of the file,  
 * to find the current position in the file, and to find  
 * the end of the file.  
 */  
  
#include <io.h>  
#include <fcntl.h>  
#include <stdlib.h>  
#include <stdio.h>  
#include <share.h>  
  
int main( void )  
{  
   int fh;  
   long pos;               /* Position of file pointer */  
   char buffer[10];  
  
   _sopen_s( &fh, "crt_lseek.c_input", _O_RDONLY, _SH_DENYNO, 0 );  
  
   /* Seek the beginning of the file: */  
   pos = _lseek( fh, 0L, SEEK_SET );  
   if( pos == -1L )  
      perror( "_lseek to beginning failed" );  
   else  
      printf( "Position for beginning of file seek = %ld\n", pos );  
  
   /* Move file pointer a little */  
    _read( fh, buffer, 10 );  
  
   /* Find current position: */  
   pos = _lseek( fh, 0L, SEEK_CUR );  
   if( pos == -1L )  
      perror( "_lseek to current position failed" );  
   else  
      printf( "Position for current position seek = %ld\n", pos );  
  
   /* Set the end of the file: */  
   pos = _lseek( fh, 0L, SEEK_END );  
   if( pos == -1L )  
      perror( "_lseek to end failed" );  
   else  
      printf( "Position for end of file seek = %ld\n", pos );  
  
   _close( fh );  
}  

Line one.  
Line two.  
Line three.  
Line four.  
Line five.  

Position for beginning of file seek = 0  
Position for current position seek = 10  
Position for end of file seek = 57  

E/s de bas niveau
fseek, _fseeki64
_tell, _telli64

Afficher: