Sdílet prostřednictvím


_lseek _lseeki64

Přesune ukazatel souboru do zadaného umístění.

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

Parametry

  • fd
    Popisovač souboru ve vztahu k otevření souboru.

  • Posun
    Počet bajtů od původu.

  • původ
    Počáteční pozice.

Vrácená hodnota

_lseekVrátí posun, bajtů od začátku nového umístění souboru._lseeki64Vrátí posun 64bitové celé číslo.Funkce vrátí –1L udávající chybu.Pokud je předán neplatný parametr jako chybný soubor deskriptoru nebo hodnotu pro původu je neplatný nebo pozice určené Posun je před začátek souboru je vyvoláno neplatný parametr popisovače, jak je popsáno v Ověření parametrů.Pokud je povoleno spuštění pokračovat, nastavit tyto funkce errno na EBADF a L-1.Zařízení je neschopen usilující o (jako například terminály a tiskárny) vrácená hodnota je undefined.

Další informace o těchto a jiných kódů chyb naleznete v _doserrno, kód chyby, _sys_errlist a _sys_nerr.

Poznámky

_lseek Funkce přesune ukazatel souboru spojené s fd do nového umístění, která je Posun bajtů z původu.Další operace na souboru dochází v novém umístění.Původu argument musí být jedna z následujících konstant, které jsou definovány v Stdio.h.

  • SEEK_SET
    Začátek souboru.

  • SEEK_CUR
    Aktuální pozice ukazatele souboru.

  • SEEK_END
    Konec souboru.

Můžete použít _lseek přemístění ukazatele myši kdekoli v souboru nebo za koncem souboru.

Požadavky

Rutina

Požadované záhlaví

_lseek

<io.h>

_lseeki64

<io.h>

Další informace o kompatibilitě v tématu Compatibility v úvodu.

Knihovny

Všechny verze C Runtime knihovny.

Příklad

// 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 );
}

Vstup: crt_lseek.c_input

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

Výsledek

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

Viz také

Referenční dokumentace

Nízké úrovně I/O

fseek _fseeki64

_tell _telli64